From 0ec9a031cddfc04927794e86eafa39c25387be53 Mon Sep 17 00:00:00 2001 From: Apratim Mukherjee Date: Fri, 8 Sep 2023 12:53:39 +0530 Subject: [PATCH 01/10] Upgrading to OTG 0.12.3 - Revamped Extended Community --- version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.py b/version.py index 42c0a3ed..bda46f25 100644 --- a/version.py +++ b/version.py @@ -2,8 +2,8 @@ class Version: - models_version = "0.12.2" - version = "0.12.2" + models_version = "0.12.3" + version = "0.12.3" package_name = "snappi" protobuf_name = "otg" go_package_name = "gosnappi" From 82823e1fa355e3b0aa755ac87a7ca033bee0c6b6 Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Fri, 8 Sep 2023 07:28:25 +0000 Subject: [PATCH 02/10] Update auto generated go snappi --- gosnappi/go.mod | 2 +- gosnappi/go.sum | 234 +- gosnappi/gosnappi.go | 14120 +++++-- gosnappi/otg/otg.pb.go | 83152 +++++++++++++++++++------------------ gosnappi/otg/otg.proto | 378 +- requirements.txt | 10 +- snappi/__init__.py | 19 + snappi/docs/openapi.yaml | 455 +- snappi/otg_pb2.py | 4680 ++- snappi/snappi.py | 2070 +- 10 files changed, 58563 insertions(+), 46557 deletions(-) diff --git a/gosnappi/go.mod b/gosnappi/go.mod index e1ac67f5..772bb748 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -7,6 +7,6 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/gorilla/mux v1.8.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.57.0 + google.golang.org/grpc v1.58.0 google.golang.org/protobuf v1.31.0 ) diff --git a/gosnappi/go.sum b/gosnappi/go.sum index 2b31296f..27a150c1 100644 --- a/gosnappi/go.sum +++ b/gosnappi/go.sum @@ -36,33 +36,43 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= +cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= @@ -71,10 +81,12 @@ cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodC cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= @@ -83,6 +95,7 @@ cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1 cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= @@ -91,17 +104,20 @@ cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAt cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= @@ -112,6 +128,7 @@ cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckm cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= +cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -125,38 +142,46 @@ cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/Zur cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -172,6 +197,9 @@ cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= @@ -179,15 +207,18 @@ cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2Aawl cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= @@ -196,44 +227,56 @@ cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOX cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= +cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= +cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= @@ -242,35 +285,44 @@ cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFM cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= @@ -278,28 +330,35 @@ cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5Uwt cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= @@ -309,18 +368,24 @@ cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGE cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= @@ -328,91 +393,117 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= +cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= +cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= +cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= +cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -421,9 +512,11 @@ cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcd cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= @@ -432,32 +525,39 @@ cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= @@ -468,10 +568,12 @@ cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRr cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -479,12 +581,14 @@ cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= @@ -496,6 +600,7 @@ cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPj cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= @@ -507,15 +612,18 @@ cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DR cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= +cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= @@ -527,41 +635,50 @@ cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeL cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= @@ -569,29 +686,36 @@ cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= @@ -609,6 +733,7 @@ github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHG github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -634,6 +759,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -641,6 +768,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -651,11 +779,16 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= @@ -680,6 +813,7 @@ github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -750,6 +884,9 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -768,6 +905,9 @@ github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqE github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -801,9 +941,12 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= @@ -820,7 +963,9 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -843,6 +988,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -875,6 +1021,12 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -932,6 +1084,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -970,6 +1124,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -982,14 +1137,18 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1019,6 +1178,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1035,6 +1196,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1106,21 +1269,29 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1136,8 +1307,10 @@ golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1205,6 +1378,9 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1278,6 +1454,11 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1416,14 +1597,31 @@ google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVix google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1461,11 +1659,14 @@ google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= +google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1510,12 +1711,17 @@ lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= +modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= @@ -1525,19 +1731,31 @@ modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= +modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= +modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= +modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= +modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 3de2eec5..8eff9cc7 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.2 +/* Open Traffic Generator API 0.12.3 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.2").SetSdkVersion("0.12.2") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.3").SetSdkVersion("0.12.3") } return api.versionMeta.localVersion @@ -173645,13 +173645,14 @@ func (obj *bgpLearnedInformationFilter) setDefault() { // ***** BgpV4RouteRange ***** type bgpV4RouteRange struct { validation - obj *otg.BgpV4RouteRange - addressesHolder BgpV4RouteRangeV4RouteAddressIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV4RouteRangeBgpCommunityIter - asPathHolder BgpAsPath - addPathHolder BgpAddPath - extCommunitiesHolder BgpV4RouteRangeBgpExtCommunityIter + obj *otg.BgpV4RouteRange + addressesHolder BgpV4RouteRangeV4RouteAddressIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV4RouteRangeBgpCommunityIter + asPathHolder BgpAsPath + addPathHolder BgpAddPath + extCommunitiesHolder BgpV4RouteRangeBgpExtCommunityIter + extendedCommunitiesHolder BgpV4RouteRangeBgpExtendedCommunityIter } func NewBgpV4RouteRange() BgpV4RouteRange { @@ -173841,6 +173842,7 @@ func (obj *bgpV4RouteRange) setNil() { obj.asPathHolder = nil obj.addPathHolder = nil obj.extCommunitiesHolder = nil + obj.extendedCommunitiesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -173938,6 +173940,8 @@ type BgpV4RouteRange interface { SetName(value string) BgpV4RouteRange // ExtCommunities returns BgpV4RouteRangeBgpExtCommunityIterIter, set in BgpV4RouteRange ExtCommunities() BgpV4RouteRangeBgpExtCommunityIter + // ExtendedCommunities returns BgpV4RouteRangeBgpExtendedCommunityIterIter, set in BgpV4RouteRange + ExtendedCommunities() BgpV4RouteRangeBgpExtendedCommunityIter setNil() } @@ -174330,6 +174334,10 @@ func (obj *bgpV4RouteRange) SetName(value string) BgpV4RouteRange { return obj } +// Deprecated: This property is deprecated in favor of property extended_communities +// +// Deprecated: This property is deprecated in favor of property extended_communities +// // Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. // ExtCommunities returns a []BgpExtCommunity func (obj *bgpV4RouteRange) ExtCommunities() BgpV4RouteRangeBgpExtCommunityIter { @@ -174417,6 +174425,93 @@ func (obj *bgpV4RouteRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtComm return obj } +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode a type and sub-type fields and the last six bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +// ExtendedCommunities returns a []BgpExtendedCommunity +func (obj *bgpV4RouteRange) ExtendedCommunities() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(obj.obj.ExtendedCommunities) == 0 { + obj.obj.ExtendedCommunities = []*otg.BgpExtendedCommunity{} + } + if obj.extendedCommunitiesHolder == nil { + obj.extendedCommunitiesHolder = newBgpV4RouteRangeBgpExtendedCommunityIter(&obj.obj.ExtendedCommunities).setMsg(obj) + } + return obj.extendedCommunitiesHolder +} + +type bgpV4RouteRangeBgpExtendedCommunityIter struct { + obj *bgpV4RouteRange + bgpExtendedCommunitySlice []BgpExtendedCommunity + fieldPtr *[]*otg.BgpExtendedCommunity +} + +func newBgpV4RouteRangeBgpExtendedCommunityIter(ptr *[]*otg.BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + return &bgpV4RouteRangeBgpExtendedCommunityIter{fieldPtr: ptr} +} + +type BgpV4RouteRangeBgpExtendedCommunityIter interface { + setMsg(*bgpV4RouteRange) BgpV4RouteRangeBgpExtendedCommunityIter + Items() []BgpExtendedCommunity + Add() BgpExtendedCommunity + Append(items ...BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter + Set(index int, newObj BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter + Clear() BgpV4RouteRangeBgpExtendedCommunityIter + clearHolderSlice() BgpV4RouteRangeBgpExtendedCommunityIter + appendHolderSlice(item BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) setMsg(msg *bgpV4RouteRange) BgpV4RouteRangeBgpExtendedCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtendedCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Items() []BgpExtendedCommunity { + return obj.bgpExtendedCommunitySlice +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Add() BgpExtendedCommunity { + newObj := &otg.BgpExtendedCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtendedCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Append(items ...BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + } + return obj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Set(index int, newObj BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtendedCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Clear() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtendedCommunity{} + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) clearHolderSlice() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(obj.bgpExtendedCommunitySlice) > 0 { + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) appendHolderSlice(item BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + return obj +} + func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -174489,6 +174584,7 @@ func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { } if len(obj.obj.ExtCommunities) != 0 { + obj.addWarnings("ExtCommunities property in schema BgpV4RouteRange is deprecated, This property is deprecated in favor of property extended_communities") if set_default { obj.ExtCommunities().clearHolderSlice() @@ -174502,6 +174598,20 @@ func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.ExtendedCommunities) != 0 { + + if set_default { + obj.ExtendedCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtendedCommunities { + obj.ExtendedCommunities().appendHolderSlice(&bgpExtendedCommunity{obj: item}) + } + } + for _, item := range obj.ExtendedCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *bgpV4RouteRange) setDefault() { @@ -174525,13 +174635,14 @@ func (obj *bgpV4RouteRange) setDefault() { // ***** BgpV6RouteRange ***** type bgpV6RouteRange struct { validation - obj *otg.BgpV6RouteRange - addressesHolder BgpV6RouteRangeV6RouteAddressIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV6RouteRangeBgpCommunityIter - asPathHolder BgpAsPath - addPathHolder BgpAddPath - extCommunitiesHolder BgpV6RouteRangeBgpExtCommunityIter + obj *otg.BgpV6RouteRange + addressesHolder BgpV6RouteRangeV6RouteAddressIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV6RouteRangeBgpCommunityIter + asPathHolder BgpAsPath + addPathHolder BgpAddPath + extCommunitiesHolder BgpV6RouteRangeBgpExtCommunityIter + extendedCommunitiesHolder BgpV6RouteRangeBgpExtendedCommunityIter } func NewBgpV6RouteRange() BgpV6RouteRange { @@ -174721,6 +174832,7 @@ func (obj *bgpV6RouteRange) setNil() { obj.asPathHolder = nil obj.addPathHolder = nil obj.extCommunitiesHolder = nil + obj.extendedCommunitiesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -174818,6 +174930,8 @@ type BgpV6RouteRange interface { SetName(value string) BgpV6RouteRange // ExtCommunities returns BgpV6RouteRangeBgpExtCommunityIterIter, set in BgpV6RouteRange ExtCommunities() BgpV6RouteRangeBgpExtCommunityIter + // ExtendedCommunities returns BgpV6RouteRangeBgpExtendedCommunityIterIter, set in BgpV6RouteRange + ExtendedCommunities() BgpV6RouteRangeBgpExtendedCommunityIter setNil() } @@ -175210,6 +175324,10 @@ func (obj *bgpV6RouteRange) SetName(value string) BgpV6RouteRange { return obj } +// Deprecated: This property is deprecated in favor of property extended_communities +// +// Deprecated: This property is deprecated in favor of property extended_communities +// // Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. // ExtCommunities returns a []BgpExtCommunity func (obj *bgpV6RouteRange) ExtCommunities() BgpV6RouteRangeBgpExtCommunityIter { @@ -175297,6 +175415,93 @@ func (obj *bgpV6RouteRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtComm return obj } +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode a type and sub-type fields and the last six bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +// ExtendedCommunities returns a []BgpExtendedCommunity +func (obj *bgpV6RouteRange) ExtendedCommunities() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(obj.obj.ExtendedCommunities) == 0 { + obj.obj.ExtendedCommunities = []*otg.BgpExtendedCommunity{} + } + if obj.extendedCommunitiesHolder == nil { + obj.extendedCommunitiesHolder = newBgpV6RouteRangeBgpExtendedCommunityIter(&obj.obj.ExtendedCommunities).setMsg(obj) + } + return obj.extendedCommunitiesHolder +} + +type bgpV6RouteRangeBgpExtendedCommunityIter struct { + obj *bgpV6RouteRange + bgpExtendedCommunitySlice []BgpExtendedCommunity + fieldPtr *[]*otg.BgpExtendedCommunity +} + +func newBgpV6RouteRangeBgpExtendedCommunityIter(ptr *[]*otg.BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + return &bgpV6RouteRangeBgpExtendedCommunityIter{fieldPtr: ptr} +} + +type BgpV6RouteRangeBgpExtendedCommunityIter interface { + setMsg(*bgpV6RouteRange) BgpV6RouteRangeBgpExtendedCommunityIter + Items() []BgpExtendedCommunity + Add() BgpExtendedCommunity + Append(items ...BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter + Set(index int, newObj BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter + Clear() BgpV6RouteRangeBgpExtendedCommunityIter + clearHolderSlice() BgpV6RouteRangeBgpExtendedCommunityIter + appendHolderSlice(item BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) setMsg(msg *bgpV6RouteRange) BgpV6RouteRangeBgpExtendedCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtendedCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Items() []BgpExtendedCommunity { + return obj.bgpExtendedCommunitySlice +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Add() BgpExtendedCommunity { + newObj := &otg.BgpExtendedCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtendedCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Append(items ...BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Set(index int, newObj BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtendedCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Clear() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtendedCommunity{} + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) clearHolderSlice() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(obj.bgpExtendedCommunitySlice) > 0 { + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) appendHolderSlice(item BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + return obj +} + func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -175369,6 +175574,7 @@ func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { } if len(obj.obj.ExtCommunities) != 0 { + obj.addWarnings("ExtCommunities property in schema BgpV6RouteRange is deprecated, This property is deprecated in favor of property extended_communities") if set_default { obj.ExtCommunities().clearHolderSlice() @@ -175382,6 +175588,20 @@ func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.ExtendedCommunities) != 0 { + + if set_default { + obj.ExtendedCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtendedCommunities { + obj.ExtendedCommunities().appendHolderSlice(&bgpExtendedCommunity{obj: item}) + } + } + for _, item := range obj.ExtendedCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *bgpV6RouteRange) setDefault() { @@ -275950,6 +276170,643 @@ func (obj *bgpAddPath) setDefault() { } +// ***** BgpExtendedCommunity ***** +type bgpExtendedCommunity struct { + validation + obj *otg.BgpExtendedCommunity + transitive_2OctetAsTypeHolder BgpExtendedCommunityTransitive2OctetAsType + transitiveIpv4AddressTypeHolder BgpExtendedCommunityTransitiveIpv4AddressType + transitive_4OctetAsTypeHolder BgpExtendedCommunityTransitive4OctetAsType + transitiveOpaqueTypeHolder BgpExtendedCommunityTransitiveOpaqueType + transitiveEvpnTypeHolder BgpExtendedCommunityTransitiveEvpnType + nonTransitive_2OctetAsTypeHolder BgpExtendedCommunityNonTransitive2OctetAsType + customHolder BgpExtendedCommunityCustomType +} + +func NewBgpExtendedCommunity() BgpExtendedCommunity { + obj := bgpExtendedCommunity{obj: &otg.BgpExtendedCommunity{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunity) Msg() *otg.BgpExtendedCommunity { + return obj.obj +} + +func (obj *bgpExtendedCommunity) SetMsg(msg *otg.BgpExtendedCommunity) BgpExtendedCommunity { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpExtendedCommunity) ToProto() (*otg.BgpExtendedCommunity, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpExtendedCommunity) FromProto(msg *otg.BgpExtendedCommunity) (BgpExtendedCommunity, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpExtendedCommunity) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpExtendedCommunity) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpExtendedCommunity) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpExtendedCommunity) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpExtendedCommunity) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpExtendedCommunity) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunity) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunity) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunity) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunity) Clone() (BgpExtendedCommunity, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunity() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunity) setNil() { + obj.transitive_2OctetAsTypeHolder = nil + obj.transitiveIpv4AddressTypeHolder = nil + obj.transitive_4OctetAsTypeHolder = nil + obj.transitiveOpaqueTypeHolder = nil + obj.transitiveEvpnTypeHolder = nil + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.customHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunity is the Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first 2 Bytes of the community encode a type and optonal sub-type field. The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a format defined by the type and optional sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +type BgpExtendedCommunity interface { + Validation + // Msg marshals BgpExtendedCommunity to protobuf object *otg.BgpExtendedCommunity + // and doesn't set defaults + Msg() *otg.BgpExtendedCommunity + // SetMsg unmarshals BgpExtendedCommunity from protobuf object *otg.BgpExtendedCommunity + // and doesn't set defaults + SetMsg(*otg.BgpExtendedCommunity) BgpExtendedCommunity + // ToProto marshals BgpExtendedCommunity to protobuf object *otg.BgpExtendedCommunity + ToProto() (*otg.BgpExtendedCommunity, error) + // ToPbText marshals BgpExtendedCommunity to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunity to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunity to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpExtendedCommunity from protobuf object *otg.BgpExtendedCommunity + FromProto(msg *otg.BgpExtendedCommunity) (BgpExtendedCommunity, error) + // FromPbText unmarshals BgpExtendedCommunity from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunity from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunity from JSON text + FromJson(value string) error + // Validate validates BgpExtendedCommunity + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunity, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityChoiceEnum, set in BgpExtendedCommunity + Choice() BgpExtendedCommunityChoiceEnum + // SetChoice assigns BgpExtendedCommunityChoiceEnum provided by user to BgpExtendedCommunity + SetChoice(value BgpExtendedCommunityChoiceEnum) BgpExtendedCommunity + // HasChoice checks if Choice has been set in BgpExtendedCommunity + HasChoice() bool + // Transitive2OctetAsType returns BgpExtendedCommunityTransitive2OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . + Transitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType + // SetTransitive2OctetAsType assigns BgpExtendedCommunityTransitive2OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . + SetTransitive2OctetAsType(value BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunity + // HasTransitive2OctetAsType checks if Transitive2OctetAsType has been set in BgpExtendedCommunity + HasTransitive2OctetAsType() bool + // TransitiveIpv4AddressType returns BgpExtendedCommunityTransitiveIpv4AddressType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + TransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType + // SetTransitiveIpv4AddressType assigns BgpExtendedCommunityTransitiveIpv4AddressType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + SetTransitiveIpv4AddressType(value BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunity + // HasTransitiveIpv4AddressType checks if TransitiveIpv4AddressType has been set in BgpExtendedCommunity + HasTransitiveIpv4AddressType() bool + // Transitive4OctetAsType returns BgpExtendedCommunityTransitive4OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + Transitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType + // SetTransitive4OctetAsType assigns BgpExtendedCommunityTransitive4OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + SetTransitive4OctetAsType(value BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunity + // HasTransitive4OctetAsType checks if Transitive4OctetAsType has been set in BgpExtendedCommunity + HasTransitive4OctetAsType() bool + // TransitiveOpaqueType returns BgpExtendedCommunityTransitiveOpaqueType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. + TransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType + // SetTransitiveOpaqueType assigns BgpExtendedCommunityTransitiveOpaqueType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. + SetTransitiveOpaqueType(value BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunity + // HasTransitiveOpaqueType checks if TransitiveOpaqueType has been set in BgpExtendedCommunity + HasTransitiveOpaqueType() bool + // TransitiveEvpnType returns BgpExtendedCommunityTransitiveEvpnType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . + TransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType + // SetTransitiveEvpnType assigns BgpExtendedCommunityTransitiveEvpnType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . + SetTransitiveEvpnType(value BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunity + // HasTransitiveEvpnType checks if TransitiveEvpnType has been set in BgpExtendedCommunity + HasTransitiveEvpnType() bool + // NonTransitive2OctetAsType returns BgpExtendedCommunityNonTransitive2OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + NonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType + // SetNonTransitive2OctetAsType assigns BgpExtendedCommunityNonTransitive2OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + SetNonTransitive2OctetAsType(value BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunity + // HasNonTransitive2OctetAsType checks if NonTransitive2OctetAsType has been set in BgpExtendedCommunity + HasNonTransitive2OctetAsType() bool + // Custom returns BgpExtendedCommunityCustomType, set in BgpExtendedCommunity. + // BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. + Custom() BgpExtendedCommunityCustomType + // SetCustom assigns BgpExtendedCommunityCustomType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. + SetCustom(value BgpExtendedCommunityCustomType) BgpExtendedCommunity + // HasCustom checks if Custom has been set in BgpExtendedCommunity + HasCustom() bool + setNil() +} + +type BgpExtendedCommunityChoiceEnum string + +// Enum of Choice on BgpExtendedCommunity +var BgpExtendedCommunityChoice = struct { + TRANSITIVE_2OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_IPV4_ADDRESS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_4OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_OPAQUE_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_EVPN_TYPE BgpExtendedCommunityChoiceEnum + NON_TRANSITIVE_2OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + CUSTOM BgpExtendedCommunityChoiceEnum +}{ + TRANSITIVE_2OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_2octet_as_type"), + TRANSITIVE_IPV4_ADDRESS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_ipv4_address_type"), + TRANSITIVE_4OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_4octet_as_type"), + TRANSITIVE_OPAQUE_TYPE: BgpExtendedCommunityChoiceEnum("transitive_opaque_type"), + TRANSITIVE_EVPN_TYPE: BgpExtendedCommunityChoiceEnum("transitive_evpn_type"), + NON_TRANSITIVE_2OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("non_transitive_2octet_as_type"), + CUSTOM: BgpExtendedCommunityChoiceEnum("custom"), +} + +func (obj *bgpExtendedCommunity) Choice() BgpExtendedCommunityChoiceEnum { + return BgpExtendedCommunityChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunity) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunity) SetChoice(value BgpExtendedCommunityChoiceEnum) BgpExtendedCommunity { + intValue, ok := otg.BgpExtendedCommunity_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunity_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Custom = nil + obj.customHolder = nil + obj.obj.NonTransitive_2OctetAsType = nil + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.obj.TransitiveEvpnType = nil + obj.transitiveEvpnTypeHolder = nil + obj.obj.TransitiveOpaqueType = nil + obj.transitiveOpaqueTypeHolder = nil + obj.obj.Transitive_4OctetAsType = nil + obj.transitive_4OctetAsTypeHolder = nil + obj.obj.TransitiveIpv4AddressType = nil + obj.transitiveIpv4AddressTypeHolder = nil + obj.obj.Transitive_2OctetAsType = nil + obj.transitive_2OctetAsTypeHolder = nil + + if value == BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE { + obj.obj.Transitive_2OctetAsType = NewBgpExtendedCommunityTransitive2OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE { + obj.obj.TransitiveIpv4AddressType = NewBgpExtendedCommunityTransitiveIpv4AddressType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE { + obj.obj.Transitive_4OctetAsType = NewBgpExtendedCommunityTransitive4OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE { + obj.obj.TransitiveOpaqueType = NewBgpExtendedCommunityTransitiveOpaqueType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE { + obj.obj.TransitiveEvpnType = NewBgpExtendedCommunityTransitiveEvpnType().Msg() + } + + if value == BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE { + obj.obj.NonTransitive_2OctetAsType = NewBgpExtendedCommunityNonTransitive2OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.CUSTOM { + obj.obj.Custom = NewBgpExtendedCommunityCustomType().Msg() + } + + return obj +} + +// description is TBD +// Transitive2OctetAsType returns a BgpExtendedCommunityTransitive2OctetAsType +func (obj *bgpExtendedCommunity) Transitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { + if obj.obj.Transitive_2OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + } + if obj.transitive_2OctetAsTypeHolder == nil { + obj.transitive_2OctetAsTypeHolder = &bgpExtendedCommunityTransitive2OctetAsType{obj: obj.obj.Transitive_2OctetAsType} + } + return obj.transitive_2OctetAsTypeHolder +} + +// description is TBD +// Transitive2OctetAsType returns a BgpExtendedCommunityTransitive2OctetAsType +func (obj *bgpExtendedCommunity) HasTransitive2OctetAsType() bool { + return obj.obj.Transitive_2OctetAsType != nil +} + +// description is TBD +// SetTransitive2OctetAsType sets the BgpExtendedCommunityTransitive2OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitive2OctetAsType(value BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + obj.transitive_2OctetAsTypeHolder = nil + obj.obj.Transitive_2OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveIpv4AddressType returns a BgpExtendedCommunityTransitiveIpv4AddressType +func (obj *bgpExtendedCommunity) TransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { + if obj.obj.TransitiveIpv4AddressType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE) + } + if obj.transitiveIpv4AddressTypeHolder == nil { + obj.transitiveIpv4AddressTypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressType{obj: obj.obj.TransitiveIpv4AddressType} + } + return obj.transitiveIpv4AddressTypeHolder +} + +// description is TBD +// TransitiveIpv4AddressType returns a BgpExtendedCommunityTransitiveIpv4AddressType +func (obj *bgpExtendedCommunity) HasTransitiveIpv4AddressType() bool { + return obj.obj.TransitiveIpv4AddressType != nil +} + +// description is TBD +// SetTransitiveIpv4AddressType sets the BgpExtendedCommunityTransitiveIpv4AddressType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveIpv4AddressType(value BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE) + obj.transitiveIpv4AddressTypeHolder = nil + obj.obj.TransitiveIpv4AddressType = value.Msg() + + return obj +} + +// description is TBD +// Transitive4OctetAsType returns a BgpExtendedCommunityTransitive4OctetAsType +func (obj *bgpExtendedCommunity) Transitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { + if obj.obj.Transitive_4OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE) + } + if obj.transitive_4OctetAsTypeHolder == nil { + obj.transitive_4OctetAsTypeHolder = &bgpExtendedCommunityTransitive4OctetAsType{obj: obj.obj.Transitive_4OctetAsType} + } + return obj.transitive_4OctetAsTypeHolder +} + +// description is TBD +// Transitive4OctetAsType returns a BgpExtendedCommunityTransitive4OctetAsType +func (obj *bgpExtendedCommunity) HasTransitive4OctetAsType() bool { + return obj.obj.Transitive_4OctetAsType != nil +} + +// description is TBD +// SetTransitive4OctetAsType sets the BgpExtendedCommunityTransitive4OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitive4OctetAsType(value BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE) + obj.transitive_4OctetAsTypeHolder = nil + obj.obj.Transitive_4OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveOpaqueType returns a BgpExtendedCommunityTransitiveOpaqueType +func (obj *bgpExtendedCommunity) TransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { + if obj.obj.TransitiveOpaqueType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE) + } + if obj.transitiveOpaqueTypeHolder == nil { + obj.transitiveOpaqueTypeHolder = &bgpExtendedCommunityTransitiveOpaqueType{obj: obj.obj.TransitiveOpaqueType} + } + return obj.transitiveOpaqueTypeHolder +} + +// description is TBD +// TransitiveOpaqueType returns a BgpExtendedCommunityTransitiveOpaqueType +func (obj *bgpExtendedCommunity) HasTransitiveOpaqueType() bool { + return obj.obj.TransitiveOpaqueType != nil +} + +// description is TBD +// SetTransitiveOpaqueType sets the BgpExtendedCommunityTransitiveOpaqueType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveOpaqueType(value BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE) + obj.transitiveOpaqueTypeHolder = nil + obj.obj.TransitiveOpaqueType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveEvpnType returns a BgpExtendedCommunityTransitiveEvpnType +func (obj *bgpExtendedCommunity) TransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { + if obj.obj.TransitiveEvpnType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE) + } + if obj.transitiveEvpnTypeHolder == nil { + obj.transitiveEvpnTypeHolder = &bgpExtendedCommunityTransitiveEvpnType{obj: obj.obj.TransitiveEvpnType} + } + return obj.transitiveEvpnTypeHolder +} + +// description is TBD +// TransitiveEvpnType returns a BgpExtendedCommunityTransitiveEvpnType +func (obj *bgpExtendedCommunity) HasTransitiveEvpnType() bool { + return obj.obj.TransitiveEvpnType != nil +} + +// description is TBD +// SetTransitiveEvpnType sets the BgpExtendedCommunityTransitiveEvpnType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveEvpnType(value BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE) + obj.transitiveEvpnTypeHolder = nil + obj.obj.TransitiveEvpnType = value.Msg() + + return obj +} + +// description is TBD +// NonTransitive2OctetAsType returns a BgpExtendedCommunityNonTransitive2OctetAsType +func (obj *bgpExtendedCommunity) NonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { + if obj.obj.NonTransitive_2OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE) + } + if obj.nonTransitive_2OctetAsTypeHolder == nil { + obj.nonTransitive_2OctetAsTypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsType{obj: obj.obj.NonTransitive_2OctetAsType} + } + return obj.nonTransitive_2OctetAsTypeHolder +} + +// description is TBD +// NonTransitive2OctetAsType returns a BgpExtendedCommunityNonTransitive2OctetAsType +func (obj *bgpExtendedCommunity) HasNonTransitive2OctetAsType() bool { + return obj.obj.NonTransitive_2OctetAsType != nil +} + +// description is TBD +// SetNonTransitive2OctetAsType sets the BgpExtendedCommunityNonTransitive2OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetNonTransitive2OctetAsType(value BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE) + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.obj.NonTransitive_2OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// Custom returns a BgpExtendedCommunityCustomType +func (obj *bgpExtendedCommunity) Custom() BgpExtendedCommunityCustomType { + if obj.obj.Custom == nil { + obj.SetChoice(BgpExtendedCommunityChoice.CUSTOM) + } + if obj.customHolder == nil { + obj.customHolder = &bgpExtendedCommunityCustomType{obj: obj.obj.Custom} + } + return obj.customHolder +} + +// description is TBD +// Custom returns a BgpExtendedCommunityCustomType +func (obj *bgpExtendedCommunity) HasCustom() bool { + return obj.obj.Custom != nil +} + +// description is TBD +// SetCustom sets the BgpExtendedCommunityCustomType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetCustom(value BgpExtendedCommunityCustomType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.CUSTOM) + obj.customHolder = nil + obj.obj.Custom = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunity) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Transitive_2OctetAsType != nil { + + obj.Transitive2OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveIpv4AddressType != nil { + + obj.TransitiveIpv4AddressType().validateObj(vObj, set_default) + } + + if obj.obj.Transitive_4OctetAsType != nil { + + obj.Transitive4OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveOpaqueType != nil { + + obj.TransitiveOpaqueType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveEvpnType != nil { + + obj.TransitiveEvpnType().validateObj(vObj, set_default) + } + + if obj.obj.NonTransitive_2OctetAsType != nil { + + obj.NonTransitive2OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.Custom != nil { + + obj.Custom().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunity) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + + } + +} + // ***** BgpSrteV4TunnelTlv ***** type bgpSrteV4TunnelTlv struct { validation @@ -295846,29 +296703,31 @@ func (obj *bgpAsPathSegment) setDefault() { } -// ***** BgpSrteRemoteEndpointSubTlv ***** -type bgpSrteRemoteEndpointSubTlv struct { +// ***** BgpExtendedCommunityTransitive2OctetAsType ***** +type bgpExtendedCommunityTransitive2OctetAsType struct { validation - obj *otg.BgpSrteRemoteEndpointSubTlv + obj *otg.BgpExtendedCommunityTransitive2OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { - obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} +func NewBgpExtendedCommunityTransitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { + obj := bgpExtendedCommunityTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityTransitive2OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrteRemoteEndpointSubTlv) Msg() *otg.BgpSrteRemoteEndpointSubTlv { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsType { return obj.obj } -func (obj *bgpSrteRemoteEndpointSubTlv) SetMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { - +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -295876,7 +296735,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSub return obj.Msg(), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -295885,7 +296744,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpoint return newObj, nil } -func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295897,12 +296756,12 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -295910,7 +296769,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295931,7 +296790,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -295948,7 +296807,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -295956,7 +296815,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295974,7 +296833,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -295987,7 +296846,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -295995,19 +296854,19 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296015,12 +296874,12 @@ func (obj *bgpSrteRemoteEndpointSubTlv) String() string { return str } -func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteRemoteEndpointSubTlv() + newObj := NewBgpExtendedCommunityTransitive2OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296032,231 +296891,225 @@ func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, er return newObj, nil } -// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv interface { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType interface { Validation - // Msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + // Msg marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrteRemoteEndpointSubTlv - // SetMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsType + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv - // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv - ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) - // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv - FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) - // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrteRemoteEndpointSubTlv + // Validate validates BgpExtendedCommunityTransitive2OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteRemoteEndpointSubTlv, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. - AsNumber() uint32 - // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv - SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv - // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv - HasAsNumber() bool - // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv - AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv - SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv - // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv - HasAddressFamily() bool - // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv4Address() string - // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv4Address() bool - // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv6Address() string - // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv6Address() bool -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { - - return *obj.obj.AsNumber - -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { - return obj.obj.AsNumber != nil -} - -// Autonomous system (AS) number -// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { - - obj.obj.AsNumber = &value - return obj + // Choice returns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive2OctetAsType + Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive2OctetAsType + SetChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive2OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteOriginSubtype() bool + setNil() } -type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string +type BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum string -// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv -var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { - IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum +// Enum of Choice on BgpExtendedCommunityTransitive2OctetAsType +var BgpExtendedCommunityTransitive2OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum }{ - IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), - IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_origin_subtype"), } -func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { - return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Determines the address type -// AddressFamily returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { - return obj.obj.AddressFamily != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { - intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) + "%s is not a valid choice on BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum", string(value))) return obj } - enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) - obj.obj.AddressFamily = &enumValue + enumValue := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil - return obj -} + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget().Msg() + } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin().Msg() + } - return *obj.obj.Ipv4Address + return obj +} +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { - return obj.obj.Ipv4Address != nil +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil } -// The IPv4 address of the Remote Endpoint. -// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() - obj.obj.Ipv4Address = &value return obj } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { - - return *obj.obj.Ipv6Address - +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { - return obj.obj.Ipv6Address != nil +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil } -// The IPv6 address of the Remote Endpoint. -// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() - obj.obj.Ipv6Address = &value return obj } -func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv4Address != nil { - - err := obj.validateIpv4(obj.Ipv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) - } + if obj.obj.RouteTargetSubtype != nil { + obj.RouteTargetSubtype().validateObj(vObj, set_default) } - if obj.obj.Ipv6Address != nil { - - err := obj.validateIpv6(obj.Ipv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) - } + if obj.obj.RouteOriginSubtype != nil { + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { - if obj.obj.AsNumber == nil { - obj.SetAsNumber(0) - } - if obj.obj.AddressFamily == nil { - obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) } - if obj.obj.Ipv4Address == nil { - obj.SetIpv4Address("0.0.0.0") - } - if obj.obj.Ipv6Address == nil { - obj.SetIpv6Address("::0") - } } -// ***** BgpSrteColorSubTlv ***** -type bgpSrteColorSubTlv struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressType ***** +type bgpExtendedCommunityTransitiveIpv4AddressType struct { validation - obj *otg.BgpSrteColorSubTlv + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressType + routeTargetSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { - obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { + obj := bgpExtendedCommunityTransitiveIpv4AddressType{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressType{}} obj.setDefault() return &obj } -func (obj *bgpSrteColorSubTlv) Msg() *otg.BgpSrteColorSubTlv { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType { return obj.obj } -func (obj *bgpSrteColorSubTlv) SetMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { - +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296264,7 +297117,7 @@ func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { return obj.Msg(), nil } -func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296273,7 +297126,7 @@ func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteCo return newObj, nil } -func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296285,12 +297138,12 @@ func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296298,7 +297151,7 @@ func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296319,7 +297172,7 @@ func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -296336,7 +297189,7 @@ func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296344,7 +297197,7 @@ func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296362,7 +297215,7 @@ func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteColorSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -296375,7 +297228,7 @@ func (obj *bgpSrteColorSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -296383,19 +297236,19 @@ func (obj *bgpSrteColorSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296403,12 +297256,12 @@ func (obj *bgpSrteColorSubTlv) String() string { return str } -func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteColorSubTlv() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296420,113 +297273,225 @@ func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { return newObj, nil } -// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. -type BgpSrteColorSubTlv interface { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType interface { Validation - // Msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType // and doesn't set defaults - Msg() *otg.BgpSrteColorSubTlv - // SetMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType // and doesn't set defaults - SetMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv - // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv - ToProto() (*otg.BgpSrteColorSubTlv, error) - // ToPbText marshals BgpSrteColorSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteColorSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteColorSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv - FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) - // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteColorSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from JSON text FromJson(value string) error - // Validate validates BgpSrteColorSubTlv + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteColorSubTlv, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Color returns string, set in BgpSrteColorSubTlv. - Color() string - // SetColor assigns string provided by user to BgpSrteColorSubTlv - SetColor(value string) BgpSrteColorSubTlv - // HasColor checks if Color has been set in BgpSrteColorSubTlv - HasColor() bool + // Choice returns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum, set in BgpExtendedCommunityTransitiveIpv4AddressType + Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveIpv4AddressType + SetChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteOriginSubtype() bool + setNil() } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) Color() string { +type BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum string - return *obj.obj.Color +// Enum of Choice on BgpExtendedCommunityTransitiveIpv4AddressType +var BgpExtendedCommunityTransitiveIpv4AddressTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum +}{ + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_origin_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum { + return BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) HasColor() bool { - return obj.obj.Color != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasChoice() bool { + return obj.obj.Choice != nil } -// Six octet values. Example: 000000000064 for color value 100. -// SetColor sets the string value in the BgpSrteColorSubTlv object -func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType { + intValue, ok := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget().Msg() + } + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin().Msg() + } - obj.obj.Color = &value return obj } -func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil +} + +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() + + return obj +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil +} + +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Color != nil { + if obj.obj.RouteTargetSubtype != nil { - err := obj.validateHex(obj.Color()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) - } + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + + if obj.obj.RouteOriginSubtype != nil { + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteColorSubTlv) setDefault() { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + + } } -// ***** BgpSrteBindingSubTlv ***** -type bgpSrteBindingSubTlv struct { +// ***** BgpExtendedCommunityTransitive4OctetAsType ***** +type bgpExtendedCommunityTransitive4OctetAsType struct { validation - obj *otg.BgpSrteBindingSubTlv + obj *otg.BgpExtendedCommunityTransitive4OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { - obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} +func NewBgpExtendedCommunityTransitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { + obj := bgpExtendedCommunityTransitive4OctetAsType{obj: &otg.BgpExtendedCommunityTransitive4OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrteBindingSubTlv) Msg() *otg.BgpSrteBindingSubTlv { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsType { return obj.obj } -func (obj *bgpSrteBindingSubTlv) SetMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { - +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296534,7 +297499,7 @@ func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { return obj.Msg(), nil } -func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296543,7 +297508,7 @@ func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSr return newObj, nil } -func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296555,12 +297520,12 @@ func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296568,7 +297533,7 @@ func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296589,7 +297554,7 @@ func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -296606,7 +297571,7 @@ func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296614,7 +297579,7 @@ func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296632,7 +297597,7 @@ func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -296645,7 +297610,7 @@ func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -296653,19 +297618,19 @@ func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296673,12 +297638,12 @@ func (obj *bgpSrteBindingSubTlv) String() string { return str } -func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteBindingSubTlv() + newObj := NewBgpExtendedCommunityTransitive4OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296690,249 +297655,225 @@ func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { return newObj, nil } -// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. -type BgpSrteBindingSubTlv interface { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType interface { Validation - // Msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + // Msg marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrteBindingSubTlv - // SetMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsType + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv - // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv - ToProto() (*otg.BgpSrteBindingSubTlv, error) - // ToPbText marshals BgpSrteBindingSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteBindingSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteBindingSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv - FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) - // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteBindingSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrteBindingSubTlv + // Validate validates BgpExtendedCommunityTransitive4OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteBindingSubTlv, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv - BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum - // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv - SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv - // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv - HasBindingSidType() bool - // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. - FourOctetSid() uint32 - // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv - SetFourOctetSid(value uint32) BgpSrteBindingSubTlv - // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv - HasFourOctetSid() bool - // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. - Ipv6Sid() string - // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv - SetIpv6Sid(value string) BgpSrteBindingSubTlv - // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv - HasIpv6Sid() bool - // SFlag returns bool, set in BgpSrteBindingSubTlv. - SFlag() bool - // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetSFlag(value bool) BgpSrteBindingSubTlv - // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv - HasSFlag() bool - // IFlag returns bool, set in BgpSrteBindingSubTlv. - IFlag() bool - // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetIFlag(value bool) BgpSrteBindingSubTlv - // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv - HasIFlag() bool + // Choice returns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive4OctetAsType + Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive4OctetAsType + SetChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive4OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteOriginSubtype() bool + setNil() } -type BgpSrteBindingSubTlvBindingSidTypeEnum string +type BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum string -// Enum of BindingSidType on BgpSrteBindingSubTlv -var BgpSrteBindingSubTlvBindingSidType = struct { - NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum - FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum - IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum +// Enum of Choice on BgpExtendedCommunityTransitive4OctetAsType +var BgpExtendedCommunityTransitive4OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum }{ - NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), - FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), - IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_origin_subtype"), } -func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { - return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". -// BindingSidType returns a string -func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { - return obj.obj.BindingSidType != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { - intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) + "%s is not a valid choice on BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum", string(value))) return obj } - enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) - obj.obj.BindingSidType = &enumValue - - return obj -} - -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { - - return *obj.obj.FourOctetSid - -} - -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { - return obj.obj.FourOctetSid != nil -} - -// Binding SID is encoded in 4 octets. -// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { - - obj.obj.FourOctetSid = &value - return obj -} - -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { - - return *obj.obj.Ipv6Sid - -} + enumValue := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { - return obj.obj.Ipv6Sid != nil -} + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget().Msg() + } -// IPv6 SID value. -// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin().Msg() + } - obj.obj.Ipv6Sid = &value return obj } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) SFlag() bool { - - return *obj.obj.SFlag - +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { - return obj.obj.SFlag != nil +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() - obj.obj.SFlag = &value return obj } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) IFlag() bool { - - return *obj.obj.IFlag - +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { - return obj.obj.IFlag != nil +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() - obj.obj.IFlag = &value return obj } -func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv6Sid != nil { + if obj.obj.RouteTargetSubtype != nil { - err := obj.validateIpv6(obj.Ipv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) - } + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + if obj.obj.RouteOriginSubtype != nil { + + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteBindingSubTlv) setDefault() { - if obj.obj.BindingSidType == nil { - obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) } - if obj.obj.SFlag == nil { - obj.SetSFlag(false) - } - if obj.obj.IFlag == nil { - obj.SetIFlag(false) - } } -// ***** BgpSrtePreferenceSubTlv ***** -type bgpSrtePreferenceSubTlv struct { +// ***** BgpExtendedCommunityTransitiveOpaqueType ***** +type bgpExtendedCommunityTransitiveOpaqueType struct { validation - obj *otg.BgpSrtePreferenceSubTlv + obj *otg.BgpExtendedCommunityTransitiveOpaqueType + colorSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeColor + encapsulationSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { - obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} +func NewBgpExtendedCommunityTransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { + obj := bgpExtendedCommunityTransitiveOpaqueType{obj: &otg.BgpExtendedCommunityTransitiveOpaqueType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePreferenceSubTlv) Msg() *otg.BgpSrtePreferenceSubTlv { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueType { return obj.obj } -func (obj *bgpSrtePreferenceSubTlv) SetMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { - +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296940,7 +297881,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, err return obj.Msg(), nil } -func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296949,7 +297890,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) return newObj, nil } -func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296961,12 +297902,12 @@ func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296974,7 +297915,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296995,7 +297936,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297012,7 +297953,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297020,7 +297961,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297038,7 +297979,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297051,7 +297992,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297059,19 +298000,19 @@ func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297079,12 +298020,12 @@ func (obj *bgpSrtePreferenceSubTlv) String() string { return str } -func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePreferenceSubTlv() + newObj := NewBgpExtendedCommunityTransitiveOpaqueType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297096,107 +298037,224 @@ func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { return newObj, nil } -// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv interface { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setNil() { + obj.colorSubtypeHolder = nil + obj.encapsulationSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType interface { Validation - // Msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // Msg marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType // and doesn't set defaults - Msg() *otg.BgpSrtePreferenceSubTlv - // SetMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueType + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType // and doesn't set defaults - SetMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv - // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv - ToProto() (*otg.BgpSrtePreferenceSubTlv, error) - // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv - FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) - // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueType from JSON text FromJson(value string) error - // Validate validates BgpSrtePreferenceSubTlv + // Validate validates BgpExtendedCommunityTransitiveOpaqueType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePreferenceSubTlv, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Preference returns uint32, set in BgpSrtePreferenceSubTlv. - Preference() uint32 - // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv - SetPreference(value uint32) BgpSrtePreferenceSubTlv - // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv - HasPreference() bool + // Choice returns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum, set in BgpExtendedCommunityTransitiveOpaqueType + Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveOpaqueType + SetChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveOpaqueType + HasChoice() bool + // ColorSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeColor, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor + // SetColorSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeColor provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType + // HasColorSubtype checks if ColorSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasColorSubtype() bool + // EncapsulationSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // SetEncapsulationSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType + // HasEncapsulationSubtype checks if EncapsulationSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasEncapsulationSubtype() bool + setNil() } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { +type BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum string - return *obj.obj.Preference +// Enum of Choice on BgpExtendedCommunityTransitiveOpaqueType +var BgpExtendedCommunityTransitiveOpaqueTypeChoice = struct { + COLOR_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + ENCAPSULATION_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum +}{ + COLOR_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("color_subtype"), + ENCAPSULATION_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("encapsulation_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum { + return BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { - return obj.obj.Preference != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasChoice() bool { + return obj.obj.Choice != nil } -// The preference value of the SR Policy candidate path. -// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object -func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType { + intValue, ok := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.EncapsulationSubtype = nil + obj.encapsulationSubtypeHolder = nil + obj.obj.ColorSubtype = nil + obj.colorSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE { + obj.obj.ColorSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeColor().Msg() + } + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE { + obj.obj.EncapsulationSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation().Msg() + } - obj.obj.Preference = &value return obj } -func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor { + if obj.obj.ColorSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + } + if obj.colorSubtypeHolder == nil { + obj.colorSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj.obj.ColorSubtype} + } + return obj.colorSubtypeHolder +} + +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasColorSubtype() bool { + return obj.obj.ColorSubtype != nil +} + +// description is TBD +// SetColorSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeColor value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + obj.colorSubtypeHolder = nil + obj.obj.ColorSubtype = value.Msg() + + return obj +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + if obj.obj.EncapsulationSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + } + if obj.encapsulationSubtypeHolder == nil { + obj.encapsulationSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj.obj.EncapsulationSubtype} + } + return obj.encapsulationSubtypeHolder +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasEncapsulationSubtype() bool { + return obj.obj.EncapsulationSubtype != nil +} + +// description is TBD +// SetEncapsulationSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + obj.encapsulationSubtypeHolder = nil + obj.obj.EncapsulationSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } + if obj.obj.ColorSubtype != nil { + + obj.ColorSubtype().validateObj(vObj, set_default) + } + + if obj.obj.EncapsulationSubtype != nil { + + obj.EncapsulationSubtype().validateObj(vObj, set_default) + } + } -func (obj *bgpSrtePreferenceSubTlv) setDefault() { - if obj.obj.Preference == nil { - obj.SetPreference(0) +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + } } -// ***** BgpSrtePolicyPrioritySubTlv ***** -type bgpSrtePolicyPrioritySubTlv struct { +// ***** BgpExtendedCommunityTransitiveEvpnType ***** +type bgpExtendedCommunityTransitiveEvpnType struct { validation - obj *otg.BgpSrtePolicyPrioritySubTlv + obj *otg.BgpExtendedCommunityTransitiveEvpnType + routerMacSubtypeHolder BgpExtendedCommunityTransitiveEvpnTypeRouterMac } -func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { - obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} +func NewBgpExtendedCommunityTransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { + obj := bgpExtendedCommunityTransitiveEvpnType{obj: &otg.BgpExtendedCommunityTransitiveEvpnType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyPrioritySubTlv) Msg() *otg.BgpSrtePolicyPrioritySubTlv { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Msg() *otg.BgpExtendedCommunityTransitiveEvpnType { return obj.obj } -func (obj *bgpSrtePolicyPrioritySubTlv) SetMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { - +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297204,7 +298262,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySub return obj.Msg(), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297213,7 +298271,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPriority return newObj, nil } -func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297225,12 +298283,12 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297238,7 +298296,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297259,7 +298317,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297276,7 +298334,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297284,7 +298342,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297302,7 +298360,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297315,7 +298373,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297323,19 +298381,19 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveEvpnType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297343,12 +298401,12 @@ func (obj *bgpSrtePolicyPrioritySubTlv) String() string { return str } -func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Clone() (BgpExtendedCommunityTransitiveEvpnType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyPrioritySubTlv() + newObj := NewBgpExtendedCommunityTransitiveEvpnType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297360,114 +298418,174 @@ func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, er return newObj, nil } -// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. -type BgpSrtePolicyPrioritySubTlv interface { +func (obj *bgpExtendedCommunityTransitiveEvpnType) setNil() { + obj.routerMacSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType interface { Validation - // Msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // Msg marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType // and doesn't set defaults - Msg() *otg.BgpSrtePolicyPrioritySubTlv - // SetMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + Msg() *otg.BgpExtendedCommunityTransitiveEvpnType + // SetMsg unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType // and doesn't set defaults - SetMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv - // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv - ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) - // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType + // ToProto marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveEvpnType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv - FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) - // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnType from JSON text FromJson(value string) error - // Validate validates BgpSrtePolicyPrioritySubTlv + // Validate validates BgpExtendedCommunityTransitiveEvpnType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyPrioritySubTlv, error) + Clone() (BgpExtendedCommunityTransitiveEvpnType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. - PolicyPriority() uint32 - // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv - SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv - // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv - HasPolicyPriority() bool + // Choice returns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum, set in BgpExtendedCommunityTransitiveEvpnType + Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveEvpnType + SetChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveEvpnType + HasChoice() bool + // RouterMacSubtype returns BgpExtendedCommunityTransitiveEvpnTypeRouterMac, set in BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // SetRouterMacSubtype assigns BgpExtendedCommunityTransitiveEvpnTypeRouterMac provided by user to BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType + // HasRouterMacSubtype checks if RouterMacSubtype has been set in BgpExtendedCommunityTransitiveEvpnType + HasRouterMacSubtype() bool + setNil() } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { +type BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum string - return *obj.obj.PolicyPriority +// Enum of Choice on BgpExtendedCommunityTransitiveEvpnType +var BgpExtendedCommunityTransitiveEvpnTypeChoice = struct { + ROUTER_MAC_SUBTYPE BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum +}{ + ROUTER_MAC_SUBTYPE: BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum("router_mac_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveEvpnType) Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum { + return BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { - return obj.obj.PolicyPriority != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasChoice() bool { + return obj.obj.Choice != nil } -// One-octet Priority value. -// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object -func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType { + intValue, ok := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouterMacSubtype = nil + obj.routerMacSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE { + obj.obj.RouterMacSubtype = NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac().Msg() + } - obj.obj.PolicyPriority = &value return obj } -func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + if obj.obj.RouterMacSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + } + if obj.routerMacSubtypeHolder == nil { + obj.routerMacSubtypeHolder = &bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj.obj.RouterMacSubtype} + } + return obj.routerMacSubtypeHolder +} + +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasRouterMacSubtype() bool { + return obj.obj.RouterMacSubtype != nil +} + +// description is TBD +// SetRouterMacSubtype sets the BgpExtendedCommunityTransitiveEvpnTypeRouterMac value in the BgpExtendedCommunityTransitiveEvpnType object +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + obj.routerMacSubtypeHolder = nil + obj.obj.RouterMacSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyPriority != nil { - - if *obj.obj.PolicyPriority > 255 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) - } + if obj.obj.RouterMacSubtype != nil { + obj.RouterMacSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { +func (obj *bgpExtendedCommunityTransitiveEvpnType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + + } } -// ***** BgpSrtePolicyNameSubTlv ***** -type bgpSrtePolicyNameSubTlv struct { +// ***** BgpExtendedCommunityNonTransitive2OctetAsType ***** +type bgpExtendedCommunityNonTransitive2OctetAsType struct { validation - obj *otg.BgpSrtePolicyNameSubTlv + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsType + linkBandwidthSubtypeHolder BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { - obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} +func NewBgpExtendedCommunityNonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { + obj := bgpExtendedCommunityNonTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyNameSubTlv) Msg() *otg.BgpSrtePolicyNameSubTlv { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType { return obj.obj } -func (obj *bgpSrtePolicyNameSubTlv) SetMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { - +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297475,7 +298593,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, err return obj.Msg(), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297484,7 +298602,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) return newObj, nil } -func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297496,12 +298614,12 @@ func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297509,7 +298627,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297530,7 +298648,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297547,7 +298665,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297555,7 +298673,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297573,7 +298691,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297586,7 +298704,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297594,19 +298712,19 @@ func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) Validate() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) String() string { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297614,12 +298732,12 @@ func (obj *bgpSrtePolicyNameSubTlv) String() string { return str } -func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyNameSubTlv() + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297631,116 +298749,173 @@ func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { return newObj, nil } -// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. -type BgpSrtePolicyNameSubTlv interface { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setNil() { + obj.linkBandwidthSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType interface { Validation - // Msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // Msg marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrtePolicyNameSubTlv - // SetMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // SetMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv - // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv - ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) - // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv - FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) - // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrtePolicyNameSubTlv + // Validate validates BgpExtendedCommunityNonTransitive2OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyNameSubTlv, error) + Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. - PolicyName() string - // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv - SetPolicyName(value string) BgpSrtePolicyNameSubTlv - // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv - HasPolicyName() bool + // Choice returns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityNonTransitive2OctetAsType + Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityNonTransitive2OctetAsType + SetChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasChoice() bool + // LinkBandwidthSubtype returns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, set in BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // SetLinkBandwidthSubtype assigns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth provided by user to BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType + // HasLinkBandwidthSubtype checks if LinkBandwidthSubtype has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasLinkBandwidthSubtype() bool + setNil() } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { +type BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum string - return *obj.obj.PolicyName +// Enum of Choice on BgpExtendedCommunityNonTransitive2OctetAsType +var BgpExtendedCommunityNonTransitive2OctetAsTypeChoice = struct { + LINK_BANDWIDTH_SUBTYPE BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum +}{ + LINK_BANDWIDTH_SUBTYPE: BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum("link_bandwidth_subtype"), +} +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { - return obj.obj.PolicyName != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object -func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.LinkBandwidthSubtype = nil + obj.linkBandwidthSubtypeHolder = nil + + if value == BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE { + obj.obj.LinkBandwidthSubtype = NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth().Msg() + } - obj.obj.PolicyName = &value return obj } -func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if obj.obj.LinkBandwidthSubtype == nil { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + } + if obj.linkBandwidthSubtypeHolder == nil { + obj.linkBandwidthSubtypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj.obj.LinkBandwidthSubtype} + } + return obj.linkBandwidthSubtypeHolder +} + +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasLinkBandwidthSubtype() bool { + return obj.obj.LinkBandwidthSubtype != nil +} + +// description is TBD +// SetLinkBandwidthSubtype sets the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth value in the BgpExtendedCommunityNonTransitive2OctetAsType object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + obj.linkBandwidthSubtypeHolder = nil + obj.obj.LinkBandwidthSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyName != nil { - - if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf( - "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", - len(*obj.obj.PolicyName))) - } + if obj.obj.LinkBandwidthSubtype != nil { + obj.LinkBandwidthSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrtePolicyNameSubTlv) setDefault() { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + + } } -// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** -type bgpSrteExplicitNullLabelPolicySubTlv struct { +// ***** BgpExtendedCommunityCustomType ***** +type bgpExtendedCommunityCustomType struct { validation - obj *otg.BgpSrteExplicitNullLabelPolicySubTlv + obj *otg.BgpExtendedCommunityCustomType } -func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { - obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} +func NewBgpExtendedCommunityCustomType() BgpExtendedCommunityCustomType { + obj := bgpExtendedCommunityCustomType{obj: &otg.BgpExtendedCommunityCustomType{}} obj.setDefault() return &obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *bgpExtendedCommunityCustomType) Msg() *otg.BgpExtendedCommunityCustomType { return obj.obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *bgpExtendedCommunityCustomType) SetMsg(msg *otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) ToProto() (*otg.BgpExtendedCommunityCustomType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297748,7 +298923,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicit return obj.Msg(), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297757,7 +298932,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExpli return newObj, nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297769,7 +298944,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -297782,7 +298957,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error return retObj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297803,7 +298978,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297828,7 +299003,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297846,7 +299021,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297867,19 +299042,19 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityCustomType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Validate() error { +func (obj *bgpExtendedCommunityCustomType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { +func (obj *bgpExtendedCommunityCustomType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297887,12 +299062,12 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { return str } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) Clone() (BgpExtendedCommunityCustomType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + newObj := NewBgpExtendedCommunityCustomType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297904,127 +299079,205 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLab return newObj, nil } -// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv interface { +// BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType interface { Validation - // Msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // Msg marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType // and doesn't set defaults - Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv - // SetMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + Msg() *otg.BgpExtendedCommunityCustomType + // SetMsg unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType // and doesn't set defaults - SetMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv - // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) - // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType + // ToProto marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType + ToProto() (*otg.BgpExtendedCommunityCustomType, error) + // ToPbText marshals BgpExtendedCommunityCustomType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityCustomType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + // ToJson marshals BgpExtendedCommunityCustomType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) - // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType + FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) + // FromPbText unmarshals BgpExtendedCommunityCustomType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityCustomType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityCustomType from JSON text FromJson(value string) error - // Validate validates BgpSrteExplicitNullLabelPolicySubTlv + // Validate validates BgpExtendedCommunityCustomType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) + Clone() (BgpExtendedCommunityCustomType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv - ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv - SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv - // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv - HasExplicitNullLabelPolicy() bool + // CommunityType returns string, set in BgpExtendedCommunityCustomType. + CommunityType() string + // SetCommunityType assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunityType(value string) BgpExtendedCommunityCustomType + // HasCommunityType checks if CommunityType has been set in BgpExtendedCommunityCustomType + HasCommunityType() bool + // CommunitySubtype returns string, set in BgpExtendedCommunityCustomType. + CommunitySubtype() string + // SetCommunitySubtype assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunitySubtype(value string) BgpExtendedCommunityCustomType + // HasCommunitySubtype checks if CommunitySubtype has been set in BgpExtendedCommunityCustomType + HasCommunitySubtype() bool + // Value returns string, set in BgpExtendedCommunityCustomType. + Value() string + // SetValue assigns string provided by user to BgpExtendedCommunityCustomType + SetValue(value string) BgpExtendedCommunityCustomType + // HasValue checks if Value has been set in BgpExtendedCommunityCustomType + HasValue() bool } -type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) CommunityType() string { + + return *obj.obj.CommunityType -// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv -var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { - RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum -}{ - RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), - PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), - PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), - PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), - DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { - return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunityType() bool { + return obj.obj.CommunityType != nil } -// The value of the explicit null label policy -// ExplicitNullLabelPolicy returns a string -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { - return obj.obj.ExplicitNullLabelPolicy != nil +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// SetCommunityType sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunityType(value string) BgpExtendedCommunityCustomType { + + obj.obj.CommunityType = &value + return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { - intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) - return obj - } - enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) - obj.obj.ExplicitNullLabelPolicy = &enumValue +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) CommunitySubtype() string { + + return *obj.obj.CommunitySubtype + +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunitySubtype() bool { + return obj.obj.CommunitySubtype != nil +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// SetCommunitySubtype sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunitySubtype(value string) BgpExtendedCommunityCustomType { + obj.obj.CommunitySubtype = &value return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) Value() string { + + return *obj.obj.Value + +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) HasValue() bool { + return obj.obj.Value != nil +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// SetValue sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetValue(value string) BgpExtendedCommunityCustomType { + + obj.obj.Value = &value + return obj +} + +func (obj *bgpExtendedCommunityCustomType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } -} + if obj.obj.CommunityType != nil { -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { - if obj.obj.ExplicitNullLabelPolicy == nil { - obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + if len(*obj.obj.CommunityType) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunityType <= 2 but Got %d", + len(*obj.obj.CommunityType))) + } + + } + + if obj.obj.CommunitySubtype != nil { + + if len(*obj.obj.CommunitySubtype) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunitySubtype <= 2 but Got %d", + len(*obj.obj.CommunitySubtype))) + } + + } + + if obj.obj.Value != nil { + + if len(*obj.obj.Value) > 12 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.Value <= 12 but Got %d", + len(*obj.obj.Value))) + } } } -// ***** BgpSrteSegmentList ***** -type bgpSrteSegmentList struct { +func (obj *bgpExtendedCommunityCustomType) setDefault() { + if obj.obj.CommunityType == nil { + obj.SetCommunityType("00") + } + if obj.obj.CommunitySubtype == nil { + obj.SetCommunitySubtype("00") + } + if obj.obj.Value == nil { + obj.SetValue("000000000000") + } + +} + +// ***** BgpSrteRemoteEndpointSubTlv ***** +type bgpSrteRemoteEndpointSubTlv struct { validation - obj *otg.BgpSrteSegmentList - segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter + obj *otg.BgpSrteRemoteEndpointSubTlv } -func NewBgpSrteSegmentList() BgpSrteSegmentList { - obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} +func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { + obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentList) Msg() *otg.BgpSrteSegmentList { +func (obj *bgpSrteRemoteEndpointSubTlv) Msg() *otg.BgpSrteRemoteEndpointSubTlv { return obj.obj } -func (obj *bgpSrteSegmentList) SetMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { - obj.setNil() +func (obj *bgpSrteRemoteEndpointSubTlv) SetMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -298032,7 +299285,7 @@ func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { return obj.Msg(), nil } -func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -298041,7 +299294,7 @@ func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSe return newObj, nil } -func (obj *bgpSrteSegmentList) ToPbText() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298053,12 +299306,12 @@ func (obj *bgpSrteSegmentList) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteSegmentList) FromPbText(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298066,7 +299319,7 @@ func (obj *bgpSrteSegmentList) FromPbText(value string) error { return retObj } -func (obj *bgpSrteSegmentList) ToYaml() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298087,7 +299340,7 @@ func (obj *bgpSrteSegmentList) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteSegmentList) FromYaml(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -298104,7 +299357,7 @@ func (obj *bgpSrteSegmentList) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298112,7 +299365,7 @@ func (obj *bgpSrteSegmentList) FromYaml(value string) error { return nil } -func (obj *bgpSrteSegmentList) ToJson() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298130,7 +299383,7 @@ func (obj *bgpSrteSegmentList) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteSegmentList) FromJson(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -298143,7 +299396,7 @@ func (obj *bgpSrteSegmentList) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -298151,19 +299404,19 @@ func (obj *bgpSrteSegmentList) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentList) validateToAndFrom() error { +func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentList) Validate() error { +func (obj *bgpSrteRemoteEndpointSubTlv) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentList) String() string { +func (obj *bgpSrteRemoteEndpointSubTlv) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -298171,12 +299424,12 @@ func (obj *bgpSrteSegmentList) String() string { return str } -func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentList() + newObj := NewBgpSrteRemoteEndpointSubTlv() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -298188,282 +299441,501 @@ func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { return newObj, nil } -func (obj *bgpSrteSegmentList) setNil() { - obj.segmentsHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList interface { +// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv interface { Validation - // Msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // Msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv // and doesn't set defaults - Msg() *otg.BgpSrteSegmentList - // SetMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + Msg() *otg.BgpSrteRemoteEndpointSubTlv + // SetMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv // and doesn't set defaults - SetMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList - // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList - ToProto() (*otg.BgpSrteSegmentList, error) - // ToPbText marshals BgpSrteSegmentList to protobuf text + SetMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv + // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) + // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentList to YAML text + // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentList to JSON text + // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList - FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) - // FromPbText unmarshals BgpSrteSegmentList from protobuf text + // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) + // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentList from YAML text + // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentList from JSON text + // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text FromJson(value string) error - // Validate validates BgpSrteSegmentList + // Validate validates BgpSrteRemoteEndpointSubTlv Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentList, error) + Clone() (BgpSrteRemoteEndpointSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Weight returns uint32, set in BgpSrteSegmentList. - Weight() uint32 - // SetWeight assigns uint32 provided by user to BgpSrteSegmentList - SetWeight(value uint32) BgpSrteSegmentList - // HasWeight checks if Weight has been set in BgpSrteSegmentList - HasWeight() bool - // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList - Segments() BgpSrteSegmentListBgpSrteSegmentIter - // Name returns string, set in BgpSrteSegmentList. - Name() string - // SetName assigns string provided by user to BgpSrteSegmentList - SetName(value string) BgpSrteSegmentList - // Active returns bool, set in BgpSrteSegmentList. - Active() bool - // SetActive assigns bool provided by user to BgpSrteSegmentList - SetActive(value bool) BgpSrteSegmentList - // HasActive checks if Active has been set in BgpSrteSegmentList - HasActive() bool - setNil() + // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. + AsNumber() uint32 + // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv + SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv + // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv + HasAsNumber() bool + // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv + AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv + SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv + // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv + HasAddressFamily() bool + // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv4Address() string + // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv4Address() bool + // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv6Address() string + // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv6Address() bool } -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) Weight() uint32 { +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { - return *obj.obj.Weight + return *obj.obj.AsNumber } -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) HasWeight() bool { - return obj.obj.Weight != nil +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { + return obj.obj.AsNumber != nil } -// The Weight associated with a given path and the sub-TLV is optional. -// SetWeight sets the uint32 value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { +// Autonomous system (AS) number +// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { - obj.obj.Weight = &value + obj.obj.AsNumber = &value return obj } -// description is TBD -// Segments returns a []BgpSrteSegment -func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.obj.Segments) == 0 { - obj.obj.Segments = []*otg.BgpSrteSegment{} - } - if obj.segmentsHolder == nil { - obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) - } - return obj.segmentsHolder -} +type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string -type bgpSrteSegmentListBgpSrteSegmentIter struct { - obj *bgpSrteSegmentList - bgpSrteSegmentSlice []BgpSrteSegment - fieldPtr *[]*otg.BgpSrteSegment +// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv +var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { + IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum +}{ + IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), + IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), } -func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} +func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { + return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) } -type BgpSrteSegmentListBgpSrteSegmentIter interface { - setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter - Items() []BgpSrteSegment - Add() BgpSrteSegment - Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Clear() BgpSrteSegmentListBgpSrteSegmentIter - clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter - appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter +// Determines the address type +// AddressFamily returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { + return obj.obj.AddressFamily != nil } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpSrteSegment{obj: val}) +func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { + intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) + return obj } - obj.obj = msg + enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) + obj.obj.AddressFamily = &enumValue + return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { - return obj.bgpSrteSegmentSlice +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { + + return *obj.obj.Ipv4Address + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { - newObj := &otg.BgpSrteSegment{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpSrteSegment{obj: newObj} - newLibObj.setDefault() - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) - return newLibObj +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { + return obj.obj.Ipv4Address != nil } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - } +// The IPv4 address of the Remote Endpoint. +// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv4Address = &value return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpSrteSegmentSlice[index] = newObj +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { + + return *obj.obj.Ipv6Address + +} + +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { + return obj.obj.Ipv6Address != nil +} + +// The IPv6 address of the Remote Endpoint. +// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv6Address = &value return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpSrteSegment{} - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + +func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj + + if obj.obj.Ipv4Address != nil { + + err := obj.validateIpv4(obj.Ipv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) + } + + } + + if obj.obj.Ipv6Address != nil { + + err := obj.validateIpv6(obj.Ipv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) + } + + } + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.bgpSrteSegmentSlice) > 0 { - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + +func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { + if obj.obj.AsNumber == nil { + obj.SetAsNumber(0) } - return obj + if obj.obj.AddressFamily == nil { + obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) + + } + if obj.obj.Ipv4Address == nil { + obj.SetIpv4Address("0.0.0.0") + } + if obj.obj.Ipv6Address == nil { + obj.SetIpv6Address("::0") + } + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - return obj + +// ***** BgpSrteColorSubTlv ***** +type bgpSrteColorSubTlv struct { + validation + obj *otg.BgpSrteColorSubTlv } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// Name returns a string -func (obj *bgpSrteSegmentList) Name() string { +func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { + obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} + obj.setDefault() + return &obj +} - return obj.obj.Name +func (obj *bgpSrteColorSubTlv) Msg() *otg.BgpSrteColorSubTlv { + return obj.obj } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// SetName sets the string value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { +func (obj *bgpSrteColorSubTlv) SetMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { - obj.obj.Name = value + proto.Merge(obj.obj, msg) return obj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) Active() bool { +func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} - return *obj.obj.Active +func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} +func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) HasActive() bool { - return obj.obj.Active != nil +func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// SetActive sets the bool value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { +func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} - obj.obj.Active = &value +func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteColorSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteColorSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. +type BgpSrteColorSubTlv interface { + Validation + // Msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrteColorSubTlv + // SetMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv + // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + ToProto() (*otg.BgpSrteColorSubTlv, error) + // ToPbText marshals BgpSrteColorSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteColorSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteColorSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) + // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteColorSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrteColorSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteColorSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Color returns string, set in BgpSrteColorSubTlv. + Color() string + // SetColor assigns string provided by user to BgpSrteColorSubTlv + SetColor(value string) BgpSrteColorSubTlv + // HasColor checks if Color has been set in BgpSrteColorSubTlv + HasColor() bool +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) Color() string { + + return *obj.obj.Color + +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) HasColor() bool { + return obj.obj.Color != nil +} + +// Six octet values. Example: 000000000064 for color value 100. +// SetColor sets the string value in the BgpSrteColorSubTlv object +func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { + + obj.obj.Color = &value return obj } -func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.Segments) != 0 { + if obj.obj.Color != nil { - if set_default { - obj.Segments().clearHolderSlice() - for _, item := range obj.obj.Segments { - obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) - } - } - for _, item := range obj.Segments().Items() { - item.validateObj(vObj, set_default) + err := obj.validateHex(obj.Color()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) } } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") - } } -func (obj *bgpSrteSegmentList) setDefault() { - if obj.obj.Weight == nil { - obj.SetWeight(0) - } - if obj.obj.Active == nil { - obj.SetActive(true) - } +func (obj *bgpSrteColorSubTlv) setDefault() { } -// ***** BgpV6EviVxlan ***** -type bgpV6EviVxlan struct { +// ***** BgpSrteBindingSubTlv ***** +type bgpSrteBindingSubTlv struct { validation - obj *otg.BgpV6EviVxlan - broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - routeDistinguisherHolder BgpRouteDistinguisher - routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV6EviVxlanBgpCommunityIter - extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter - asPathHolder BgpAsPath + obj *otg.BgpSrteBindingSubTlv } -func NewBgpV6EviVxlan() BgpV6EviVxlan { - obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} +func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { + obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpV6EviVxlan) Msg() *otg.BgpV6EviVxlan { +func (obj *bgpSrteBindingSubTlv) Msg() *otg.BgpSrteBindingSubTlv { return obj.obj } -func (obj *bgpV6EviVxlan) SetMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { - obj.setNil() +func (obj *bgpSrteBindingSubTlv) SetMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -298471,7 +299943,7 @@ func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { return obj.Msg(), nil } -func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -298480,7 +299952,7 @@ func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, erro return newObj, nil } -func (obj *bgpV6EviVxlan) ToPbText() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298492,12 +299964,12 @@ func (obj *bgpV6EviVxlan) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpV6EviVxlan) FromPbText(value string) error { +func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298505,7 +299977,7 @@ func (obj *bgpV6EviVxlan) FromPbText(value string) error { return retObj } -func (obj *bgpV6EviVxlan) ToYaml() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298526,7 +299998,7 @@ func (obj *bgpV6EviVxlan) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpV6EviVxlan) FromYaml(value string) error { +func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -298543,7 +300015,7 @@ func (obj *bgpV6EviVxlan) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298551,7 +300023,7 @@ func (obj *bgpV6EviVxlan) FromYaml(value string) error { return nil } -func (obj *bgpV6EviVxlan) ToJson() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298569,7 +300041,7 @@ func (obj *bgpV6EviVxlan) ToJson() (string, error) { return string(data), nil } -func (obj *bgpV6EviVxlan) FromJson(value string) error { +func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -298582,7 +300054,7 @@ func (obj *bgpV6EviVxlan) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -298590,19 +300062,19 @@ func (obj *bgpV6EviVxlan) FromJson(value string) error { return nil } -func (obj *bgpV6EviVxlan) validateToAndFrom() error { +func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV6EviVxlan) Validate() error { +func (obj *bgpSrteBindingSubTlv) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV6EviVxlan) String() string { +func (obj *bgpSrteBindingSubTlv) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -298610,12 +300082,12 @@ func (obj *bgpV6EviVxlan) String() string { return str } -func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV6EviVxlan() + newObj := NewBgpSrteBindingSubTlv() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -298627,842 +300099,6222 @@ func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { return newObj, nil } -func (obj *bgpV6EviVxlan) setNil() { - obj.broadcastDomainsHolder = nil - obj.routeDistinguisherHolder = nil - obj.routeTargetExportHolder = nil - obj.routeTargetImportHolder = nil - obj.l3RouteTargetExportHolder = nil - obj.l3RouteTargetImportHolder = nil - obj.advancedHolder = nil - obj.communitiesHolder = nil - obj.extCommunitiesHolder = nil - obj.asPathHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV6EviVxlan interface { +// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. +type BgpSrteBindingSubTlv interface { Validation - // Msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // Msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv // and doesn't set defaults - Msg() *otg.BgpV6EviVxlan - // SetMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + Msg() *otg.BgpSrteBindingSubTlv + // SetMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv // and doesn't set defaults - SetMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan - // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan - ToProto() (*otg.BgpV6EviVxlan, error) - // ToPbText marshals BgpV6EviVxlan to protobuf text + SetMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv + // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + ToProto() (*otg.BgpSrteBindingSubTlv, error) + // ToPbText marshals BgpSrteBindingSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV6EviVxlan to YAML text + // ToYaml marshals BgpSrteBindingSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpV6EviVxlan to JSON text + // ToJson marshals BgpSrteBindingSubTlv to JSON text ToJson() (string, error) - // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan - FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) - // FromPbText unmarshals BgpV6EviVxlan from protobuf text + // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) + // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV6EviVxlan from YAML text + // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV6EviVxlan from JSON text + // FromJson unmarshals BgpSrteBindingSubTlv from JSON text FromJson(value string) error - // Validate validates BgpV6EviVxlan + // Validate validates BgpSrteBindingSubTlv Validate() error // A stringer function String() string // Clones the object - Clone() (BgpV6EviVxlan, error) + Clone() (BgpSrteBindingSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan - BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan - ReplicationType() BgpV6EviVxlanReplicationTypeEnum - // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan - SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan - // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan - HasReplicationType() bool - // PmsiLabel returns uint32, set in BgpV6EviVxlan. - PmsiLabel() uint32 - // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan - SetPmsiLabel(value uint32) BgpV6EviVxlan - // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan - HasPmsiLabel() bool - // AdLabel returns uint32, set in BgpV6EviVxlan. - AdLabel() uint32 - // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan - SetAdLabel(value uint32) BgpV6EviVxlan - // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan - HasAdLabel() bool - // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - RouteDistinguisher() BgpRouteDistinguisher - // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan - // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan - HasRouteDistinguisher() bool - // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - Advanced() BgpRouteAdvanced - // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan - // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan - HasAdvanced() bool - // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan - Communities() BgpV6EviVxlanBgpCommunityIter - // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan - ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter - // AsPath returns BgpAsPath, set in BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - AsPath() BgpAsPath - // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - SetAsPath(value BgpAsPath) BgpV6EviVxlan - // HasAsPath checks if AsPath has been set in BgpV6EviVxlan - HasAsPath() bool - setNil() + // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv + BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum + // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv + SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv + // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv + HasBindingSidType() bool + // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. + FourOctetSid() uint32 + // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv + SetFourOctetSid(value uint32) BgpSrteBindingSubTlv + // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv + HasFourOctetSid() bool + // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. + Ipv6Sid() string + // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv + SetIpv6Sid(value string) BgpSrteBindingSubTlv + // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv + HasIpv6Sid() bool + // SFlag returns bool, set in BgpSrteBindingSubTlv. + SFlag() bool + // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetSFlag(value bool) BgpSrteBindingSubTlv + // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv + HasSFlag() bool + // IFlag returns bool, set in BgpSrteBindingSubTlv. + IFlag() bool + // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetIFlag(value bool) BgpSrteBindingSubTlv + // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv + HasIFlag() bool } -// This contains the list of Broadcast Domains to be configured per EVI. -// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain -func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.obj.BroadcastDomains) == 0 { - obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} - } - if obj.broadcastDomainsHolder == nil { - obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) +type BgpSrteBindingSubTlvBindingSidTypeEnum string + +// Enum of BindingSidType on BgpSrteBindingSubTlv +var BgpSrteBindingSubTlvBindingSidType = struct { + NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum + FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum + IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum +}{ + NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), + FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), + IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), +} + +func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { + return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) +} + +// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". +// BindingSidType returns a string +func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { + return obj.obj.BindingSidType != nil +} + +func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { + intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) + return obj } - return obj.broadcastDomainsHolder + enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) + obj.obj.BindingSidType = &enumValue + + return obj } -type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { - obj *bgpV6EviVxlan - bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain - fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { + + return *obj.obj.FourOctetSid + } -func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { + return obj.obj.FourOctetSid != nil } -type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Items() []BgpV6EviVxlanBroadcastDomain - Add() BgpV6EviVxlanBroadcastDomain - Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter +// Binding SID is encoded in 4 octets. +// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { + + obj.obj.FourOctetSid = &value + return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) - } - obj.obj = msg +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { + + return *obj.obj.Ipv6Sid + +} + +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { + return obj.obj.Ipv6Sid != nil +} + +// IPv6 SID value. +// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { + + obj.obj.Ipv6Sid = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { - return obj.bgpV6EviVxlanBroadcastDomainSlice +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) SFlag() bool { + + return *obj.obj.SFlag + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { - newObj := &otg.BgpV6EviVxlanBroadcastDomain{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} - newLibObj.setDefault() - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) - return newLibObj +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { + return obj.obj.SFlag != nil } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) - } +// S-Flag encodes the "Specified-BSID-only" behavior. +// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.SFlag = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) IFlag() bool { + + return *obj.obj.IFlag + +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { + return obj.obj.IFlag != nil +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.IFlag = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + +func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj + + if obj.obj.Ipv6Sid != nil { + + err := obj.validateIpv6(obj.Ipv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) + } + + } + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + +func (obj *bgpSrteBindingSubTlv) setDefault() { + if obj.obj.BindingSidType == nil { + obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) + } - return obj + if obj.obj.SFlag == nil { + obj.SetSFlag(false) + } + if obj.obj.IFlag == nil { + obj.SetIFlag(false) + } + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + +// ***** BgpSrtePreferenceSubTlv ***** +type bgpSrtePreferenceSubTlv struct { + validation + obj *otg.BgpSrtePreferenceSubTlv +} + +func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { + obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePreferenceSubTlv) Msg() *otg.BgpSrtePreferenceSubTlv { + return obj.obj +} + +func (obj *bgpSrtePreferenceSubTlv) SetMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { + + proto.Merge(obj.obj, msg) return obj } -type BgpV6EviVxlanReplicationTypeEnum string +func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} -// Enum of ReplicationType on BgpV6EviVxlan -var BgpV6EviVxlanReplicationType = struct { - INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum -}{ - INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), +func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePreferenceSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv interface { + Validation + // Msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePreferenceSubTlv + // SetMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv + // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + ToProto() (*otg.BgpSrtePreferenceSubTlv, error) + // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) + // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePreferenceSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePreferenceSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Preference returns uint32, set in BgpSrtePreferenceSubTlv. + Preference() uint32 + // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv + SetPreference(value uint32) BgpSrtePreferenceSubTlv + // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv + HasPreference() bool +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { + + return *obj.obj.Preference + +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { + return obj.obj.Preference != nil +} + +// The preference value of the SR Policy candidate path. +// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object +func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { + + obj.obj.Preference = &value + return obj +} + +func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrtePreferenceSubTlv) setDefault() { + if obj.obj.Preference == nil { + obj.SetPreference(0) + } + +} + +// ***** BgpSrtePolicyPrioritySubTlv ***** +type bgpSrtePolicyPrioritySubTlv struct { + validation + obj *otg.BgpSrtePolicyPrioritySubTlv +} + +func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { + obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Msg() *otg.BgpSrtePolicyPrioritySubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) SetMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyPrioritySubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. +type BgpSrtePolicyPrioritySubTlv interface { + Validation + // Msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePolicyPrioritySubTlv + // SetMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv + // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) + // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) + // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePolicyPrioritySubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyPrioritySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. + PolicyPriority() uint32 + // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv + SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv + // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv + HasPolicyPriority() bool +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { + + return *obj.obj.PolicyPriority + +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { + return obj.obj.PolicyPriority != nil +} + +// One-octet Priority value. +// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object +func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { + + obj.obj.PolicyPriority = &value + return obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyPriority != nil { + + if *obj.obj.PolicyPriority > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) + } + + } + +} + +func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { + +} + +// ***** BgpSrtePolicyNameSubTlv ***** +type bgpSrtePolicyNameSubTlv struct { + validation + obj *otg.BgpSrtePolicyNameSubTlv +} + +func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { + obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyNameSubTlv) Msg() *otg.BgpSrtePolicyNameSubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyNameSubTlv) SetMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyNameSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. +type BgpSrtePolicyNameSubTlv interface { + Validation + // Msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePolicyNameSubTlv + // SetMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv + // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) + // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) + // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePolicyNameSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyNameSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. + PolicyName() string + // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv + SetPolicyName(value string) BgpSrtePolicyNameSubTlv + // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv + HasPolicyName() bool +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { + + return *obj.obj.PolicyName + +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { + return obj.obj.PolicyName != nil +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object +func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { + + obj.obj.PolicyName = &value + return obj +} + +func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyName != nil { + + if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", + len(*obj.obj.PolicyName))) + } + + } + +} + +func (obj *bgpSrtePolicyNameSubTlv) setDefault() { + +} + +// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** +type bgpSrteExplicitNullLabelPolicySubTlv struct { + validation + obj *otg.BgpSrteExplicitNullLabelPolicySubTlv +} + +func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { + obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { + return obj.obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv interface { + Validation + // Msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv + // SetMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv + // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) + // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) + // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrteExplicitNullLabelPolicySubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv + ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv + SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv + // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv + HasExplicitNullLabelPolicy() bool +} + +type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string + +// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv +var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { + RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum +}{ + RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), + PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), + PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), + PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), + DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { + return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +} + +// The value of the explicit null label policy +// ExplicitNullLabelPolicy returns a string +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { + return obj.obj.ExplicitNullLabelPolicy != nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { + intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) + return obj + } + enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) + obj.obj.ExplicitNullLabelPolicy = &enumValue + + return obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { + if obj.obj.ExplicitNullLabelPolicy == nil { + obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + + } + +} + +// ***** BgpSrteSegmentList ***** +type bgpSrteSegmentList struct { + validation + obj *otg.BgpSrteSegmentList + segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter +} + +func NewBgpSrteSegmentList() BgpSrteSegmentList { + obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteSegmentList) Msg() *otg.BgpSrteSegmentList { + return obj.obj +} + +func (obj *bgpSrteSegmentList) SetMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrteSegmentList) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrteSegmentList) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrteSegmentList) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteSegmentList) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteSegmentList) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteSegmentList) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteSegmentList) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteSegmentList() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpSrteSegmentList) setNil() { + obj.segmentsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList interface { + Validation + // Msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + Msg() *otg.BgpSrteSegmentList + // SetMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + SetMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList + // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + ToProto() (*otg.BgpSrteSegmentList, error) + // ToPbText marshals BgpSrteSegmentList to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteSegmentList to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteSegmentList to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) + // FromPbText unmarshals BgpSrteSegmentList from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteSegmentList from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteSegmentList from JSON text + FromJson(value string) error + // Validate validates BgpSrteSegmentList + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteSegmentList, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Weight returns uint32, set in BgpSrteSegmentList. + Weight() uint32 + // SetWeight assigns uint32 provided by user to BgpSrteSegmentList + SetWeight(value uint32) BgpSrteSegmentList + // HasWeight checks if Weight has been set in BgpSrteSegmentList + HasWeight() bool + // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList + Segments() BgpSrteSegmentListBgpSrteSegmentIter + // Name returns string, set in BgpSrteSegmentList. + Name() string + // SetName assigns string provided by user to BgpSrteSegmentList + SetName(value string) BgpSrteSegmentList + // Active returns bool, set in BgpSrteSegmentList. + Active() bool + // SetActive assigns bool provided by user to BgpSrteSegmentList + SetActive(value bool) BgpSrteSegmentList + // HasActive checks if Active has been set in BgpSrteSegmentList + HasActive() bool + setNil() +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) Weight() uint32 { + + return *obj.obj.Weight + +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) HasWeight() bool { + return obj.obj.Weight != nil +} + +// The Weight associated with a given path and the sub-TLV is optional. +// SetWeight sets the uint32 value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { + + obj.obj.Weight = &value + return obj +} + +// description is TBD +// Segments returns a []BgpSrteSegment +func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.obj.Segments) == 0 { + obj.obj.Segments = []*otg.BgpSrteSegment{} + } + if obj.segmentsHolder == nil { + obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) + } + return obj.segmentsHolder +} + +type bgpSrteSegmentListBgpSrteSegmentIter struct { + obj *bgpSrteSegmentList + bgpSrteSegmentSlice []BgpSrteSegment + fieldPtr *[]*otg.BgpSrteSegment +} + +func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} +} + +type BgpSrteSegmentListBgpSrteSegmentIter interface { + setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter + Items() []BgpSrteSegment + Add() BgpSrteSegment + Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Clear() BgpSrteSegmentListBgpSrteSegmentIter + clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter + appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpSrteSegment{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { + return obj.bgpSrteSegmentSlice +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { + newObj := &otg.BgpSrteSegment{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpSrteSegment{obj: newObj} + newLibObj.setDefault() + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) + return newLibObj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + } + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpSrteSegmentSlice[index] = newObj + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpSrteSegment{} + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.bgpSrteSegmentSlice) > 0 { + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + return obj +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *bgpSrteSegmentList) Name() string { + + return obj.obj.Name +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// SetName sets the string value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { + + obj.obj.Name = value + return obj +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) Active() bool { + + return *obj.obj.Active + +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) HasActive() bool { + return obj.obj.Active != nil +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// SetActive sets the bool value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { + + obj.obj.Active = &value + return obj +} + +func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.Segments) != 0 { + + if set_default { + obj.Segments().clearHolderSlice() + for _, item := range obj.obj.Segments { + obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) + } + } + for _, item := range obj.Segments().Items() { + item.validateObj(vObj, set_default) + } + + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") + } +} + +func (obj *bgpSrteSegmentList) setDefault() { + if obj.obj.Weight == nil { + obj.SetWeight(0) + } + if obj.obj.Active == nil { + obj.SetActive(true) + } + +} + +// ***** BgpV6EviVxlan ***** +type bgpV6EviVxlan struct { + validation + obj *otg.BgpV6EviVxlan + broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + routeDistinguisherHolder BgpRouteDistinguisher + routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV6EviVxlanBgpCommunityIter + extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter + asPathHolder BgpAsPath +} + +func NewBgpV6EviVxlan() BgpV6EviVxlan { + obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} + obj.setDefault() + return &obj +} + +func (obj *bgpV6EviVxlan) Msg() *otg.BgpV6EviVxlan { + return obj.obj +} + +func (obj *bgpV6EviVxlan) SetMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpV6EviVxlan) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpV6EviVxlan) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpV6EviVxlan) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpV6EviVxlan) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpV6EviVxlan) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpV6EviVxlan) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpV6EviVxlan) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpV6EviVxlan() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpV6EviVxlan) setNil() { + obj.broadcastDomainsHolder = nil + obj.routeDistinguisherHolder = nil + obj.routeTargetExportHolder = nil + obj.routeTargetImportHolder = nil + obj.l3RouteTargetExportHolder = nil + obj.l3RouteTargetImportHolder = nil + obj.advancedHolder = nil + obj.communitiesHolder = nil + obj.extCommunitiesHolder = nil + obj.asPathHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV6EviVxlan interface { + Validation + // Msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + Msg() *otg.BgpV6EviVxlan + // SetMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + SetMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan + // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + ToProto() (*otg.BgpV6EviVxlan, error) + // ToPbText marshals BgpV6EviVxlan to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpV6EviVxlan to YAML text + ToYaml() (string, error) + // ToJson marshals BgpV6EviVxlan to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) + // FromPbText unmarshals BgpV6EviVxlan from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpV6EviVxlan from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpV6EviVxlan from JSON text + FromJson(value string) error + // Validate validates BgpV6EviVxlan + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpV6EviVxlan, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan + BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan + ReplicationType() BgpV6EviVxlanReplicationTypeEnum + // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan + SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan + // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan + HasReplicationType() bool + // PmsiLabel returns uint32, set in BgpV6EviVxlan. + PmsiLabel() uint32 + // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan + SetPmsiLabel(value uint32) BgpV6EviVxlan + // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan + HasPmsiLabel() bool + // AdLabel returns uint32, set in BgpV6EviVxlan. + AdLabel() uint32 + // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan + SetAdLabel(value uint32) BgpV6EviVxlan + // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan + HasAdLabel() bool + // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + RouteDistinguisher() BgpRouteDistinguisher + // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan + // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan + HasRouteDistinguisher() bool + // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + Advanced() BgpRouteAdvanced + // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan + // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan + HasAdvanced() bool + // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan + Communities() BgpV6EviVxlanBgpCommunityIter + // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan + ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter + // AsPath returns BgpAsPath, set in BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + AsPath() BgpAsPath + // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + SetAsPath(value BgpAsPath) BgpV6EviVxlan + // HasAsPath checks if AsPath has been set in BgpV6EviVxlan + HasAsPath() bool + setNil() +} + +// This contains the list of Broadcast Domains to be configured per EVI. +// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain +func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.obj.BroadcastDomains) == 0 { + obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} + } + if obj.broadcastDomainsHolder == nil { + obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) + } + return obj.broadcastDomainsHolder +} + +type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { + obj *bgpV6EviVxlan + bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain + fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain +} + +func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Items() []BgpV6EviVxlanBroadcastDomain + Add() BgpV6EviVxlanBroadcastDomain + Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { + return obj.bgpV6EviVxlanBroadcastDomainSlice +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { + newObj := &otg.BgpV6EviVxlanBroadcastDomain{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} + newLibObj.setDefault() + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + return obj +} + +type BgpV6EviVxlanReplicationTypeEnum string + +// Enum of ReplicationType on BgpV6EviVxlan +var BgpV6EviVxlanReplicationType = struct { + INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum +}{ + INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), +} + +func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { + return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) +} + +// This model only supports Ingress Replication +// ReplicationType returns a string +func (obj *bgpV6EviVxlan) HasReplicationType() bool { + return obj.obj.ReplicationType != nil +} + +func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { + intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) + obj.obj.ReplicationType = &enumValue + + return obj +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { + + return *obj.obj.PmsiLabel + +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { + return obj.obj.PmsiLabel != nil +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { + + obj.obj.PmsiLabel = &value + return obj +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) AdLabel() uint32 { + + return *obj.obj.AdLabel + +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasAdLabel() bool { + return obj.obj.AdLabel != nil +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { + + obj.obj.AdLabel = &value + return obj +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { + if obj.obj.RouteDistinguisher == nil { + obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().Msg() + } + if obj.routeDistinguisherHolder == nil { + obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + } + return obj.routeDistinguisherHolder +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { + return obj.obj.RouteDistinguisher != nil +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { + + obj.routeDistinguisherHolder = nil + obj.obj.RouteDistinguisher = value.Msg() + + return obj +} + +// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. +// RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetExport) == 0 { + obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetExportHolder == nil { + obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) + } + return obj.routeTargetExportHolder +} + +type bgpV6EviVxlanBgpRouteTargetIter struct { + obj *bgpV6EviVxlan + bgpRouteTargetSlice []BgpRouteTarget + fieldPtr *[]*otg.BgpRouteTarget +} + +func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpRouteTargetIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter + Items() []BgpRouteTarget + Add() BgpRouteTarget + Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Clear() BgpV6EviVxlanBgpRouteTargetIter + clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter + appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpRouteTarget{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { + return obj.bgpRouteTargetSlice +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { + newObj := &otg.BgpRouteTarget{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpRouteTarget{obj: newObj} + newLibObj.setDefault() + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpRouteTargetSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpRouteTarget{} + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.bgpRouteTargetSlice) > 0 { + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + return obj +} + +// List of L2VNI import targets associated with this EVI. +// RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetImport) == 0 { + obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetImportHolder == nil { + obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + } + return obj.routeTargetImportHolder +} + +// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. +// L3RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetExport) == 0 { + obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetExportHolder == nil { + obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + } + return obj.l3RouteTargetExportHolder +} + +// List of L3VNI Import Route Targets. +// L3RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetImport) == 0 { + obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetImportHolder == nil { + obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + } + return obj.l3RouteTargetImportHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { + if obj.obj.Advanced == nil { + obj.obj.Advanced = NewBgpRouteAdvanced().Msg() + } + if obj.advancedHolder == nil { + obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + } + return obj.advancedHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) HasAdvanced() bool { + return obj.obj.Advanced != nil +} + +// description is TBD +// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { + + obj.advancedHolder = nil + obj.obj.Advanced = value.Msg() + + return obj +} + +// Optional community settings. +// Communities returns a []BgpCommunity +func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { + if len(obj.obj.Communities) == 0 { + obj.obj.Communities = []*otg.BgpCommunity{} + } + if obj.communitiesHolder == nil { + obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + } + return obj.communitiesHolder +} + +type bgpV6EviVxlanBgpCommunityIter struct { + obj *bgpV6EviVxlan + bgpCommunitySlice []BgpCommunity + fieldPtr *[]*otg.BgpCommunity +} + +func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter + Items() []BgpCommunity + Add() BgpCommunity + Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Clear() BgpV6EviVxlanBgpCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpCommunityIter + appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { + return obj.bgpCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { + newObj := &otg.BgpCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCommunity{} + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { + if len(obj.bgpCommunitySlice) > 0 { + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + return obj +} + +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. +// ExtCommunities returns a []BgpExtCommunity +func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.obj.ExtCommunities) == 0 { + obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + } + if obj.extCommunitiesHolder == nil { + obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + } + return obj.extCommunitiesHolder +} + +type bgpV6EviVxlanBgpExtCommunityIter struct { + obj *bgpV6EviVxlan + bgpExtCommunitySlice []BgpExtCommunity + fieldPtr *[]*otg.BgpExtCommunity +} + +func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpExtCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter + Items() []BgpExtCommunity + Add() BgpExtCommunity + Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Clear() BgpV6EviVxlanBgpExtCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter + appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { + return obj.bgpExtCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { + newObj := &otg.BgpExtCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtCommunity{} + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.bgpExtCommunitySlice) > 0 { + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + return obj +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { + if obj.obj.AsPath == nil { + obj.obj.AsPath = NewBgpAsPath().Msg() + } + if obj.asPathHolder == nil { + obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} + } + return obj.asPathHolder +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) HasAsPath() bool { + return obj.obj.AsPath != nil +} + +// Optional AS PATH settings. +// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { + + obj.asPathHolder = nil + obj.obj.AsPath = value.Msg() + + return obj +} + +func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.BroadcastDomains) != 0 { + + if set_default { + obj.BroadcastDomains().clearHolderSlice() + for _, item := range obj.obj.BroadcastDomains { + obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) + } + } + for _, item := range obj.BroadcastDomains().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.PmsiLabel != nil { + + if *obj.obj.PmsiLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + } + + } + + if obj.obj.AdLabel != nil { + + if *obj.obj.AdLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) + } + + } + + if obj.obj.RouteDistinguisher != nil { + + obj.RouteDistinguisher().validateObj(vObj, set_default) + } + + if len(obj.obj.RouteTargetExport) != 0 { + + if set_default { + obj.RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetExport { + obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.RouteTargetImport) != 0 { + + if set_default { + obj.RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetImport { + obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetExport) != 0 { + + if set_default { + obj.L3RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetExport { + obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetImport) != 0 { + + if set_default { + obj.L3RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetImport { + obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.Advanced != nil { + + obj.Advanced().validateObj(vObj, set_default) + } + + if len(obj.obj.Communities) != 0 { + + if set_default { + obj.Communities().clearHolderSlice() + for _, item := range obj.obj.Communities { + obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) + } + } + for _, item := range obj.Communities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.ExtCommunities) != 0 { + + if set_default { + obj.ExtCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtCommunities { + obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) + } + } + for _, item := range obj.ExtCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.AsPath != nil { + + obj.AsPath().validateObj(vObj, set_default) + } + +} + +func (obj *bgpV6EviVxlan) setDefault() { + if obj.obj.ReplicationType == nil { + obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) + + } + if obj.obj.PmsiLabel == nil { + obj.SetPmsiLabel(16) + } + if obj.obj.AdLabel == nil { + obj.SetAdLabel(0) + } + +} + +// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** +type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + validation + obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache +} + +func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} + obj.setDefault() + return &obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + return obj.obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. +type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { + Validation + // Msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // SetMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + SetMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text + ToPbText() (string, error) + // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + ToYaml() (string, error) + // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + ToJson() (string, error) + // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text + FromPbText(value string) error + // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + FromYaml(value string) error + // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + FromJson(value string) error + // Validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmMac() string + // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmMac() bool + // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmIpv4() string + // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmIpv4() bool +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { + + return *obj.obj.RemoteVmMac + +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { + return obj.obj.RemoteVmMac != nil +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmMac = &value + return obj +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { + + return *obj.obj.RemoteVmIpv4 + +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { + return obj.obj.RemoteVmIpv4 != nil +} + +// Remote VM IPv4 address +// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmIpv4 = &value + return obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RemoteVmMac != nil { + + err := obj.validateMac(obj.RemoteVmMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + } + + } + + if obj.obj.RemoteVmIpv4 != nil { + + err := obj.validateIpv4(obj.RemoteVmIpv4()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) + } + + } + +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { + +} + +// ***** PatternFlowIpv4TosPrecedenceCounter ***** +type patternFlowIpv4TosPrecedenceCounter struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceCounter +} + +func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { + obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Msg() *otg.PatternFlowIpv4TosPrecedenceCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern +type PatternFlowIpv4TosPrecedenceCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosPrecedenceCounter + // SetMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter + // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosPrecedenceCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** +type patternFlowIpv4TosPrecedenceMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceMetricTag +} + +func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { + obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosPrecedenceMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag + // SetMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag + // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosPrecedenceMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(3) + } + +} + +// ***** PatternFlowIpv4TosDelayCounter ***** +type patternFlowIpv4TosDelayCounter struct { + validation + obj *otg.PatternFlowIpv4TosDelayCounter +} + +func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { + obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosDelayCounter) Msg() *otg.PatternFlowIpv4TosDelayCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosDelayCounter) SetMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosDelayCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosDelayCounter is integer counter pattern +type PatternFlowIpv4TosDelayCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosDelayCounter + // SetMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter + // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) + // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosDelayCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosDelayCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStart(value uint32) PatternFlowIpv4TosDelayCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStep(value uint32) PatternFlowIpv4TosDelayCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetCount(value uint32) PatternFlowIpv4TosDelayCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosDelayCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosDelayMetricTag ***** +type patternFlowIpv4TosDelayMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosDelayMetricTag +} + +func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { + obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Msg() *otg.PatternFlowIpv4TosDelayMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosDelayMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosDelayMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosDelayMetricTag + // SetMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag + // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosDelayMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosDelayMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag + SetName(value string) PatternFlowIpv4TosDelayMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputCounter ***** +type patternFlowIpv4TosThroughputCounter struct { + validation + obj *otg.PatternFlowIpv4TosThroughputCounter +} + +func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { + obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) Msg() *otg.PatternFlowIpv4TosThroughputCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) SetMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosThroughputCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosThroughputCounter is integer counter pattern +type PatternFlowIpv4TosThroughputCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosThroughputCounter + // SetMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter + // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) + // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosThroughputCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosThroughputCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStart(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStep(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetCount(value uint32) PatternFlowIpv4TosThroughputCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputMetricTag ***** +type patternFlowIpv4TosThroughputMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosThroughputMetricTag +} + +func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { + obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Msg() *otg.PatternFlowIpv4TosThroughputMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosThroughputMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosThroughputMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosThroughputMetricTag + // SetMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag + // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosThroughputMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosThroughputMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag + SetName(value string) PatternFlowIpv4TosThroughputMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } + +} + +// ***** PatternFlowIpv4TosReliabilityCounter ***** +type patternFlowIpv4TosReliabilityCounter struct { + validation + obj *otg.PatternFlowIpv4TosReliabilityCounter +} + +func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { + obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Msg() *otg.PatternFlowIpv4TosReliabilityCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosReliabilityCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosReliabilityCounter is integer counter pattern +type PatternFlowIpv4TosReliabilityCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosReliabilityCounter + // SetMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter + // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosReliabilityCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosReliabilityCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosReliabilityMetricTag ***** +type patternFlowIpv4TosReliabilityMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosReliabilityMetricTag +} + +func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { + obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosReliabilityMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosReliabilityMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag + // SetMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag + // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosReliabilityMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetName(value string) PatternFlowIpv4TosReliabilityMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag + HasLength() bool } -func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { - return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) -} +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { -// This model only supports Ingress Replication -// ReplicationType returns a string -func (obj *bgpV6EviVxlan) HasReplicationType() bool { - return obj.obj.ReplicationType != nil + return obj.obj.Name } -func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { - intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) - obj.obj.ReplicationType = &enumValue +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { + obj.obj.Name = value return obj } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { - return *obj.obj.PmsiLabel + return *obj.obj.Offset } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { - return obj.obj.PmsiLabel != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { + return obj.obj.Offset != nil } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { - obj.obj.PmsiLabel = &value + obj.obj.Offset = &value return obj } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) AdLabel() uint32 { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { - return *obj.obj.AdLabel + return *obj.obj.Length } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasAdLabel() bool { - return obj.obj.AdLabel != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { - obj.obj.AdLabel = &value + obj.obj.Length = &value return obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { - if obj.obj.RouteDistinguisher == nil { - obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().Msg() +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - if obj.routeDistinguisherHolder == nil { - obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") } - return obj.routeDistinguisherHolder -} -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { - return obj.obj.RouteDistinguisher != nil -} + if obj.obj.Offset != nil { -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } - obj.routeDistinguisherHolder = nil - obj.obj.RouteDistinguisher = value.Msg() + } - return obj -} + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } -// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. -// RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetExport) == 0 { - obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} - } - if obj.routeTargetExportHolder == nil { - obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) } - return obj.routeTargetExportHolder -} -type bgpV6EviVxlanBgpRouteTargetIter struct { - obj *bgpV6EviVxlan - bgpRouteTargetSlice []BgpRouteTarget - fieldPtr *[]*otg.BgpRouteTarget } -func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} -} +func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } -type BgpV6EviVxlanBgpRouteTargetIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter - Items() []BgpRouteTarget - Add() BgpRouteTarget - Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Clear() BgpV6EviVxlanBgpRouteTargetIter - clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter - appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpRouteTarget{obj: val}) - } - obj.obj = msg - return obj +// ***** PatternFlowIpv4TosMonetaryCounter ***** +type patternFlowIpv4TosMonetaryCounter struct { + validation + obj *otg.PatternFlowIpv4TosMonetaryCounter } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { - return obj.bgpRouteTargetSlice +func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { + obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} + obj.setDefault() + return &obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { - newObj := &otg.BgpRouteTarget{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpRouteTarget{obj: newObj} - newLibObj.setDefault() - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) - return newLibObj +func (obj *patternFlowIpv4TosMonetaryCounter) Msg() *otg.PatternFlowIpv4TosMonetaryCounter { + return obj.obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - } - return obj -} +func (obj *patternFlowIpv4TosMonetaryCounter) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpRouteTargetSlice[index] = newObj + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpRouteTarget{} - obj.bgpRouteTargetSlice = []BgpRouteTarget{} + +func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return obj.Msg(), nil } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.bgpRouteTargetSlice) > 0 { - obj.bgpRouteTargetSlice = []BgpRouteTarget{} + +func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err } - return obj -} -func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - return obj + return newObj, nil } -// List of L2VNI import targets associated with this EVI. -// RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetImport) == 0 { - obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.routeTargetImportHolder == nil { - obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err } - return obj.routeTargetImportHolder + return string(protoMarshal), nil } -// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. -// L3RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetExport) == 0 { - obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj } - if obj.l3RouteTargetExportHolder == nil { - obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr } - return obj.l3RouteTargetExportHolder + return retObj } -// List of L3VNI Import Route Targets. -// L3RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetImport) == 0 { - obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.l3RouteTargetImportHolder == nil { - obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, } - return obj.l3RouteTargetImportHolder -} - -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { - if obj.obj.Advanced == nil { - obj.obj.Advanced = NewBgpRouteAdvanced().Msg() + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err } - if obj.advancedHolder == nil { - obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err } - return obj.advancedHolder -} - -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) HasAdvanced() bool { - return obj.obj.Advanced != nil -} - -// description is TBD -// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { - - obj.advancedHolder = nil - obj.obj.Advanced = value.Msg() - - return obj + return string(data), nil } -// Optional community settings. -// Communities returns a []BgpCommunity -func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { - if len(obj.obj.Communities) == 0 { - obj.obj.Communities = []*otg.BgpCommunity{} +func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { + if value == "" { + value = "{}" } - if obj.communitiesHolder == nil { - obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) } - return obj.communitiesHolder -} -type bgpV6EviVxlanBgpCommunityIter struct { - obj *bgpV6EviVxlan - bgpCommunitySlice []BgpCommunity - fieldPtr *[]*otg.BgpCommunity + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil } -func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} +func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil } -type BgpV6EviVxlanBgpCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter - Items() []BgpCommunity - Add() BgpCommunity - Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Clear() BgpV6EviVxlanBgpCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpCommunityIter - appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter -} +func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } -func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCommunity{obj: val}) + err := obj.validateToAndFrom() + if err != nil { + return err } - obj.obj = msg - return obj + return nil } -func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { - return obj.bgpCommunitySlice +func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() } -func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { - newObj := &otg.BgpCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) - return newLibObj +func (obj *patternFlowIpv4TosMonetaryCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() } -func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) +func (obj *patternFlowIpv4TosMonetaryCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() } - return obj + return str } -func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCommunity{} - obj.bgpCommunitySlice = []BgpCommunity{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { - if len(obj.bgpCommunitySlice) > 0 { - obj.bgpCommunitySlice = []BgpCommunity{} +func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) - return obj -} - -// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. -// ExtCommunities returns a []BgpExtCommunity -func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.obj.ExtCommunities) == 0 { - obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + newObj := NewPatternFlowIpv4TosMonetaryCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err } - if obj.extCommunitiesHolder == nil { - obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr } - return obj.extCommunitiesHolder + return newObj, nil } -type bgpV6EviVxlanBgpExtCommunityIter struct { - obj *bgpV6EviVxlan - bgpExtCommunitySlice []BgpExtCommunity - fieldPtr *[]*otg.BgpExtCommunity +// PatternFlowIpv4TosMonetaryCounter is integer counter pattern +type PatternFlowIpv4TosMonetaryCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosMonetaryCounter + // SetMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter + // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosMonetaryCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosMonetaryCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter + HasCount() bool } -func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} -} +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { -type BgpV6EviVxlanBgpExtCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter - Items() []BgpExtCommunity - Add() BgpExtCommunity - Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Clear() BgpV6EviVxlanBgpExtCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter - appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter -} + return *obj.obj.Start -func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpExtCommunity{obj: val}) - } - obj.obj = msg - return obj } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { - return obj.bgpExtCommunitySlice +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { + return obj.obj.Start != nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { - newObj := &otg.BgpExtCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpExtCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) - return newLibObj -} +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) - } + obj.obj.Start = &value return obj } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpExtCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpExtCommunity{} - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { + + return *obj.obj.Step + } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.bgpExtCommunitySlice) > 0 { - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { + return obj.obj.Step != nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { + + obj.obj.Step = &value return obj } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { - if obj.obj.AsPath == nil { - obj.obj.AsPath = NewBgpAsPath().Msg() - } - if obj.asPathHolder == nil { - obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} - } - return obj.asPathHolder -} +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { + + return *obj.obj.Count -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) HasAsPath() bool { - return obj.obj.AsPath != nil } -// Optional AS PATH settings. -// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { + return obj.obj.Count != nil +} - obj.asPathHolder = nil - obj.obj.AsPath = value.Msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { + obj.obj.Count = &value return obj } -func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.BroadcastDomains) != 0 { - - if set_default { - obj.BroadcastDomains().clearHolderSlice() - for _, item := range obj.obj.BroadcastDomains { - obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) - } - } - for _, item := range obj.BroadcastDomains().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.PmsiLabel != nil { + if obj.obj.Start != nil { - if *obj.obj.PmsiLabel > 16777215 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) } } - if obj.obj.AdLabel != nil { + if obj.obj.Step != nil { - if *obj.obj.AdLabel > 16777215 { + if *obj.obj.Step > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) - } - - } - - if obj.obj.RouteDistinguisher != nil { - - obj.RouteDistinguisher().validateObj(vObj, set_default) - } - - if len(obj.obj.RouteTargetExport) != 0 { - - if set_default { - obj.RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetExport { - obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.RouteTargetImport) != 0 { - - if set_default { - obj.RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetImport { - obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetExport) != 0 { - - if set_default { - obj.L3RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetExport { - obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetImport) != 0 { - - if set_default { - obj.L3RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetImport { - obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.Advanced != nil { - - obj.Advanced().validateObj(vObj, set_default) - } - - if len(obj.obj.Communities) != 0 { - - if set_default { - obj.Communities().clearHolderSlice() - for _, item := range obj.obj.Communities { - obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) - } - } - for _, item := range obj.Communities().Items() { - item.validateObj(vObj, set_default) + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) } } - if len(obj.obj.ExtCommunities) != 0 { + if obj.obj.Count != nil { - if set_default { - obj.ExtCommunities().clearHolderSlice() - for _, item := range obj.obj.ExtCommunities { - obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) - } - } - for _, item := range obj.ExtCommunities().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } - if obj.obj.AsPath != nil { - - obj.AsPath().validateObj(vObj, set_default) - } - } -func (obj *bgpV6EviVxlan) setDefault() { - if obj.obj.ReplicationType == nil { - obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) - +func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.PmsiLabel == nil { - obj.SetPmsiLabel(16) + if obj.obj.Step == nil { + obj.SetStep(1) } - if obj.obj.AdLabel == nil { - obj.SetAdLabel(0) + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** -type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { +// ***** PatternFlowIpv4TosMonetaryMetricTag ***** +type patternFlowIpv4TosMonetaryMetricTag struct { validation - obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + obj *otg.PatternFlowIpv4TosMonetaryMetricTag } -func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { - obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} +func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { + obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} obj.setDefault() return &obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { return obj.obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -299470,7 +306322,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*o return obj.Msg(), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -299479,7 +306331,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg return newObj, nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299491,7 +306343,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (s return string(protoMarshal), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -299504,7 +306356,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(va return retObj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299525,7 +306377,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (str return string(data), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -299550,7 +306402,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(valu return nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299568,7 +306420,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (str return string(data), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -299589,19 +306441,19 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(valu return nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Validate() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -299609,12 +306461,12 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() stri return str } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + newObj := NewPatternFlowIpv4TosMonetaryMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -299626,150 +306478,182 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (Vxla return newObj, nil } -// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. -type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { +// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosMonetaryMetricTag interface { Validation - // Msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // Msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // SetMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag + // SetMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - SetMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text + SetMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag + // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text + // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text FromJson(value string) error - // Validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // Validate validates PatternFlowIpv4TosMonetaryMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmMac() string - // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmMac() bool - // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmIpv4() string - // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmIpv4() bool + // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetName(value string) PatternFlowIpv4TosMonetaryMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag + HasLength() bool } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - return *obj.obj.RemoteVmMac + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { + obj.obj.Name = value + return obj } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { - return obj.obj.RemoteVmMac != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { + + return *obj.obj.Offset + } -// Remote VM MAC address bound to Remote VM IPv4 address -// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} - obj.obj.RemoteVmMac = &value +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { + + obj.obj.Offset = &value return obj } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { - return *obj.obj.RemoteVmIpv4 + return *obj.obj.Length } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { - return obj.obj.RemoteVmIpv4 != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// Remote VM IPv4 address -// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { - obj.obj.RemoteVmIpv4 = &value + obj.obj.Length = &value return obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RemoteVmMac != nil { + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") + } - err := obj.validateMac(obj.RemoteVmMac()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) } } - if obj.obj.RemoteVmIpv4 != nil { + if obj.obj.Length != nil { - err := obj.validateIpv4(obj.RemoteVmIpv4()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { +func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } } -// ***** PatternFlowIpv4TosPrecedenceCounter ***** -type patternFlowIpv4TosPrecedenceCounter struct { +// ***** PatternFlowIpv4TosUnusedCounter ***** +type patternFlowIpv4TosUnusedCounter struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceCounter + obj *otg.PatternFlowIpv4TosUnusedCounter } -func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { - obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} +func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { + obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) Msg() *otg.PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4TosUnusedCounter) Msg() *otg.PatternFlowIpv4TosUnusedCounter { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4TosUnusedCounter) SetMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -299777,7 +306661,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -299786,7 +306670,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299798,7 +306682,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -299811,7 +306695,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299832,7 +306716,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -299857,7 +306741,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299875,7 +306759,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -299896,19 +306780,19 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) Validate() error { +func (obj *patternFlowIpv4TosUnusedCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { +func (obj *patternFlowIpv4TosUnusedCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -299916,12 +306800,12 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceCounter() + newObj := NewPatternFlowIpv4TosUnusedCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -299933,63 +306817,63 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrece return newObj, nil } -// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter interface { +// PatternFlowIpv4TosUnusedCounter is integer counter pattern +type PatternFlowIpv4TosUnusedCounter interface { Validation - // Msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // Msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosPrecedenceCounter - // SetMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + Msg() *otg.PatternFlowIpv4TosUnusedCounter + // SetMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter - // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter + // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) + // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosPrecedenceCounter + // Validate validates PatternFlowIpv4TosUnusedCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + Clone() (PatternFlowIpv4TosUnusedCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStart(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStep(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetCount(value uint32) PatternFlowIpv4TosUnusedCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { return *obj.obj.Start @@ -299997,13 +306881,13 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Start = &value return obj @@ -300011,7 +306895,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFl // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { return *obj.obj.Step @@ -300019,13 +306903,13 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Step = &value return obj @@ -300033,7 +306917,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlo // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { return *obj.obj.Count @@ -300041,56 +306925,56 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 7 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 7 { + if *obj.obj.Step > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 7 { + if *obj.obj.Count > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { +func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -300103,29 +306987,29 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { } -// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** -type patternFlowIpv4TosPrecedenceMetricTag struct { +// ***** PatternFlowIpv4TosUnusedMetricTag ***** +type patternFlowIpv4TosUnusedMetricTag struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceMetricTag + obj *otg.PatternFlowIpv4TosUnusedMetricTag } -func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { - obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} +func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { + obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4TosUnusedMetricTag) Msg() *otg.PatternFlowIpv4TosUnusedMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4TosUnusedMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300133,7 +307017,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv return obj.Msg(), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300142,7 +307026,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlow return newObj, nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300154,7 +307038,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300167,7 +307051,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300188,7 +307072,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300213,7 +307097,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300231,7 +307115,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300252,19 +307136,19 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Validate() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { +func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300272,12 +307156,12 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + newObj := NewPatternFlowIpv4TosUnusedMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300289,68 +307173,68 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPre return newObj, nil } -// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosPrecedenceMetricTag interface { +// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosUnusedMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // Msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag - // SetMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + Msg() *otg.PatternFlowIpv4TosUnusedMetricTag + // SetMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag - // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag + // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosPrecedenceMetricTag + // Validate validates PatternFlowIpv4TosUnusedMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + Clone() (PatternFlowIpv4TosUnusedMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. + // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag + SetName(value string) PatternFlowIpv4TosUnusedMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { +func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { +// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Name = value return obj @@ -300358,7 +307242,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternF // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -300366,13 +307250,13 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Offset = &value return obj @@ -300380,7 +307264,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) Patter // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { +func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { return *obj.obj.Length @@ -300388,83 +307272,83 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { +func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 2 { + if *obj.obj.Offset > 0 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 3 { + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { +func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(3) + obj.SetLength(1) } } -// ***** PatternFlowIpv4TosDelayCounter ***** -type patternFlowIpv4TosDelayCounter struct { +// ***** PatternFlowIpv4DscpPhbCounter ***** +type patternFlowIpv4DscpPhbCounter struct { validation - obj *otg.PatternFlowIpv4TosDelayCounter + obj *otg.PatternFlowIpv4DscpPhbCounter } -func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { - obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} +func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { + obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayCounter) Msg() *otg.PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowIpv4DscpPhbCounter) Msg() *otg.PatternFlowIpv4DscpPhbCounter { return obj.obj } -func (obj *patternFlowIpv4TosDelayCounter) SetMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowIpv4DscpPhbCounter) SetMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300472,7 +307356,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDel return obj.Msg(), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300481,7 +307365,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4Tos return newObj, nil } -func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300493,7 +307377,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300506,7 +307390,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300527,7 +307411,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300552,7 +307436,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300570,7 +307454,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300591,19 +307475,19 @@ func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) Validate() error { +func (obj *patternFlowIpv4DscpPhbCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) String() string { +func (obj *patternFlowIpv4DscpPhbCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300611,12 +307495,12 @@ func (obj *patternFlowIpv4TosDelayCounter) String() string { return str } -func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayCounter() + newObj := NewPatternFlowIpv4DscpPhbCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300628,63 +307512,63 @@ func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCount return newObj, nil } -// PatternFlowIpv4TosDelayCounter is integer counter pattern -type PatternFlowIpv4TosDelayCounter interface { +// PatternFlowIpv4DscpPhbCounter is integer counter pattern +type PatternFlowIpv4DscpPhbCounter interface { Validation - // Msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // Msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosDelayCounter - // SetMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + Msg() *otg.PatternFlowIpv4DscpPhbCounter + // SetMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter - // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter - ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) - // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter + // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter + ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) + // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter - FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter + FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosDelayCounter + // Validate validates PatternFlowIpv4DscpPhbCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayCounter, error) + Clone() (PatternFlowIpv4DscpPhbCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStart(value uint32) PatternFlowIpv4TosDelayCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStart(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStep(value uint32) PatternFlowIpv4TosDelayCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStep(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetCount(value uint32) PatternFlowIpv4TosDelayCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetCount(value uint32) PatternFlowIpv4DscpPhbCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { return *obj.obj.Start @@ -300692,13 +307576,13 @@ func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Start = &value return obj @@ -300706,7 +307590,7 @@ func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { return *obj.obj.Step @@ -300714,13 +307598,13 @@ func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Step = &value return obj @@ -300728,7 +307612,7 @@ func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4 // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { return *obj.obj.Count @@ -300736,56 +307620,56 @@ func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 1 { + if *obj.obj.Start > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 1 { + if *obj.obj.Step > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Count > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosDelayCounter) setDefault() { +func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -300798,29 +307682,29 @@ func (obj *patternFlowIpv4TosDelayCounter) setDefault() { } -// ***** PatternFlowIpv4TosDelayMetricTag ***** -type patternFlowIpv4TosDelayMetricTag struct { +// ***** PatternFlowIpv4DscpPhbMetricTag ***** +type patternFlowIpv4DscpPhbMetricTag struct { validation - obj *otg.PatternFlowIpv4TosDelayMetricTag + obj *otg.PatternFlowIpv4DscpPhbMetricTag } -func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { - obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} +func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { + obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayMetricTag) Msg() *otg.PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowIpv4DscpPhbMetricTag) Msg() *otg.PatternFlowIpv4DscpPhbMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosDelayMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowIpv4DscpPhbMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300828,7 +307712,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosD return obj.Msg(), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300837,7 +307721,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4T return newObj, nil } -func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300849,7 +307733,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300862,7 +307746,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300883,7 +307767,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300908,7 +307792,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300926,7 +307810,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300947,19 +307831,19 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) Validate() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) String() string { +func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300967,12 +307851,12 @@ func (obj *patternFlowIpv4TosDelayMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayMetricTag() + newObj := NewPatternFlowIpv4DscpPhbMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300984,68 +307868,68 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMet return newObj, nil } -// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosDelayMetricTag interface { +// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpPhbMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // Msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosDelayMetricTag - // SetMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + Msg() *otg.PatternFlowIpv4DscpPhbMetricTag + // SetMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag - // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag + // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosDelayMetricTag + // Validate validates PatternFlowIpv4DscpPhbMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayMetricTag, error) + Clone() (PatternFlowIpv4DscpPhbMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. + // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag - SetName(value string) PatternFlowIpv4TosDelayMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag + SetName(value string) PatternFlowIpv4DscpPhbMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { +func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { +// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Name = value return obj @@ -301053,7 +307937,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIp // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -301061,13 +307945,13 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Offset = &value return obj @@ -301075,7 +307959,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlow // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { +func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { return *obj.obj.Length @@ -301083,83 +307967,83 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { +func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 0 { + if *obj.obj.Offset > 5 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Length < 1 || *obj.obj.Length > 6 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { +func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(1) + obj.SetLength(6) } } -// ***** PatternFlowIpv4TosThroughputCounter ***** -type patternFlowIpv4TosThroughputCounter struct { +// ***** PatternFlowIpv4DscpEcnCounter ***** +type patternFlowIpv4DscpEcnCounter struct { validation - obj *otg.PatternFlowIpv4TosThroughputCounter + obj *otg.PatternFlowIpv4DscpEcnCounter } -func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { - obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} +func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { + obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputCounter) Msg() *otg.PatternFlowIpv4TosThroughputCounter { +func (obj *patternFlowIpv4DscpEcnCounter) Msg() *otg.PatternFlowIpv4DscpEcnCounter { return obj.obj } -func (obj *patternFlowIpv4TosThroughputCounter) SetMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { +func (obj *patternFlowIpv4DscpEcnCounter) SetMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301167,7 +308051,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301176,7 +308060,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301188,7 +308072,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301201,7 +308085,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301222,7 +308106,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301247,7 +308131,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301265,7 +308149,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301286,19 +308170,19 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) Validate() error { +func (obj *patternFlowIpv4DscpEcnCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) String() string { +func (obj *patternFlowIpv4DscpEcnCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -301306,12 +308190,12 @@ func (obj *patternFlowIpv4TosThroughputCounter) String() string { return str } -func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputCounter() + newObj := NewPatternFlowIpv4DscpEcnCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -301323,63 +308207,63 @@ func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThrou return newObj, nil } -// PatternFlowIpv4TosThroughputCounter is integer counter pattern -type PatternFlowIpv4TosThroughputCounter interface { +// PatternFlowIpv4DscpEcnCounter is integer counter pattern +type PatternFlowIpv4DscpEcnCounter interface { Validation - // Msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // Msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosThroughputCounter - // SetMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + Msg() *otg.PatternFlowIpv4DscpEcnCounter + // SetMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter - // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter - ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) - // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter + // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) + // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text + // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text + // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter - FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text + // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosThroughputCounter + // Validate validates PatternFlowIpv4DscpEcnCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputCounter, error) + Clone() (PatternFlowIpv4DscpEcnCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStart(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStart(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStep(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStep(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetCount(value uint32) PatternFlowIpv4TosThroughputCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetCount(value uint32) PatternFlowIpv4DscpEcnCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { return *obj.obj.Start @@ -301387,13 +308271,13 @@ func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Start = &value return obj @@ -301401,7 +308285,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFl // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { return *obj.obj.Step @@ -301409,13 +308293,13 @@ func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Step = &value return obj @@ -301423,7 +308307,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlo // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { return *obj.obj.Count @@ -301431,56 +308315,56 @@ func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 1 { + if *obj.obj.Start > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 1 { + if *obj.obj.Step > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Count > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { +func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -301493,29 +308377,29 @@ func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { } -// ***** PatternFlowIpv4TosThroughputMetricTag ***** -type patternFlowIpv4TosThroughputMetricTag struct { +// ***** PatternFlowIpv4DscpEcnMetricTag ***** +type patternFlowIpv4DscpEcnMetricTag struct { validation - obj *otg.PatternFlowIpv4TosThroughputMetricTag + obj *otg.PatternFlowIpv4DscpEcnMetricTag } -func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { - obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} +func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { + obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) Msg() *otg.PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowIpv4DscpEcnMetricTag) Msg() *otg.PatternFlowIpv4DscpEcnMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowIpv4DscpEcnMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301523,7 +308407,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv return obj.Msg(), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301532,7 +308416,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlow return newObj, nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301544,7 +308428,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301557,7 +308441,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301578,7 +308462,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301603,7 +308487,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301621,7 +308505,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301642,19 +308526,19 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) Validate() error { +func (obj *patternFlowIpv4DscpEcnMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { +func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -301662,12 +308546,12 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputMetricTag() + newObj := NewPatternFlowIpv4DscpEcnMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -301679,68 +308563,68 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThr return newObj, nil } -// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosThroughputMetricTag interface { +// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpEcnMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // Msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosThroughputMetricTag - // SetMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + Msg() *otg.PatternFlowIpv4DscpEcnMetricTag + // SetMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag - // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag + // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text + // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosThroughputMetricTag + // Validate validates PatternFlowIpv4DscpEcnMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputMetricTag, error) + Clone() (PatternFlowIpv4DscpEcnMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. + // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag - SetName(value string) PatternFlowIpv4TosThroughputMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag + SetName(value string) PatternFlowIpv4DscpEcnMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { +func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { +// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Name = value return obj @@ -301748,7 +308632,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternF // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -301756,13 +308640,13 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Offset = &value return obj @@ -301770,7 +308654,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) Patter // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { +func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { return *obj.obj.Length @@ -301778,83 +308662,83 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { +func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 0 { + if *obj.obj.Offset > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Length < 1 || *obj.obj.Length > 2 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { +func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(1) + obj.SetLength(2) } } -// ***** PatternFlowIpv4TosReliabilityCounter ***** -type patternFlowIpv4TosReliabilityCounter struct { +// ***** IsisLspPrefixAttributes ***** +type isisLspPrefixAttributes struct { validation - obj *otg.PatternFlowIpv4TosReliabilityCounter + obj *otg.IsisLspPrefixAttributes } -func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { - obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} +func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { + obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityCounter) Msg() *otg.PatternFlowIpv4TosReliabilityCounter { +func (obj *isisLspPrefixAttributes) Msg() *otg.IsisLspPrefixAttributes { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityCounter) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { +func (obj *isisLspPrefixAttributes) SetMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301862,7 +308746,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4 return obj.Msg(), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301871,7 +308755,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowI return newObj, nil } -func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { +func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301883,7 +308767,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { +func (obj *isisLspPrefixAttributes) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301896,7 +308780,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { +func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301917,7 +308801,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { +func (obj *isisLspPrefixAttributes) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301942,7 +308826,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { +func (obj *isisLspPrefixAttributes) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301960,7 +308844,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { +func (obj *isisLspPrefixAttributes) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301981,19 +308865,19 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { +func (obj *isisLspPrefixAttributes) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) Validate() error { +func (obj *isisLspPrefixAttributes) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) String() string { +func (obj *isisLspPrefixAttributes) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302001,12 +308885,12 @@ func (obj *patternFlowIpv4TosReliabilityCounter) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityCounter() + newObj := NewIsisLspPrefixAttributes() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302018,199 +308902,161 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReli return newObj, nil } -// PatternFlowIpv4TosReliabilityCounter is integer counter pattern -type PatternFlowIpv4TosReliabilityCounter interface { +// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html +type IsisLspPrefixAttributes interface { Validation - // Msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // Msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosReliabilityCounter - // SetMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + Msg() *otg.IsisLspPrefixAttributes + // SetMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter - // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text + SetMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes + // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + ToProto() (*otg.IsisLspPrefixAttributes, error) + // ToPbText marshals IsisLspPrefixAttributes to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text + // ToYaml marshals IsisLspPrefixAttributes to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text + // ToJson marshals IsisLspPrefixAttributes to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text + // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) + // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text + // FromYaml unmarshals IsisLspPrefixAttributes from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text + // FromJson unmarshals IsisLspPrefixAttributes from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosReliabilityCounter + // Validate validates IsisLspPrefixAttributes Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityCounter, error) + Clone() (IsisLspPrefixAttributes, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter - HasCount() bool + // XFlag returns bool, set in IsisLspPrefixAttributes. + XFlag() bool + // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes + SetXFlag(value bool) IsisLspPrefixAttributes + // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes + HasXFlag() bool + // RFlag returns bool, set in IsisLspPrefixAttributes. + RFlag() bool + // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes + SetRFlag(value bool) IsisLspPrefixAttributes + // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes + HasRFlag() bool + // NFlag returns bool, set in IsisLspPrefixAttributes. + NFlag() bool + // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes + SetNFlag(value bool) IsisLspPrefixAttributes + // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes + HasNFlag() bool } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) XFlag() bool { - return *obj.obj.Start + return *obj.obj.XFlag } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { - return obj.obj.Start != nil +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) HasXFlag() bool { + return obj.obj.XFlag != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { +// External Prefix Flag (Bit 0) +// SetXFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Start = &value + obj.obj.XFlag = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) RFlag() bool { - return *obj.obj.Step + return *obj.obj.RFlag } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { - return obj.obj.Step != nil +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) HasRFlag() bool { + return obj.obj.RFlag != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { +// Re-advertisement Flag (Bit 1) +// SetRFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Step = &value + obj.obj.RFlag = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) NFlag() bool { - return *obj.obj.Count + return *obj.obj.NFlag } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { - return obj.obj.Count != nil +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) HasNFlag() bool { + return obj.obj.NFlag != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { +// Node Flag (Bit 2) +// SetNFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Count = &value + obj.obj.NFlag = &value return obj } -func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { +func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) - } +func (obj *isisLspPrefixAttributes) setDefault() { } -// ***** PatternFlowIpv4TosReliabilityMetricTag ***** -type patternFlowIpv4TosReliabilityMetricTag struct { +// ***** BgpV4EviVxlanBroadcastDomain ***** +type bgpV4EviVxlanBroadcastDomain struct { validation - obj *otg.PatternFlowIpv4TosReliabilityMetricTag + obj *otg.BgpV4EviVxlanBroadcastDomain + cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter } -func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { - obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} +func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { + obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { +func (obj *bgpV4EviVxlanBroadcastDomain) Msg() *otg.BgpV4EviVxlanBroadcastDomain { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { - +func (obj *bgpV4EviVxlanBroadcastDomain) SetMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302218,7 +309064,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIp return obj.Msg(), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302227,7 +309073,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlo return newObj, nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302239,12 +309085,12 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -302252,7 +309098,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) erro return retObj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302273,7 +309119,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302290,7 +309136,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -302298,7 +309144,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error return nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302316,7 +309162,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -302329,7 +309175,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -302337,19 +309183,19 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error return nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { +func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Validate() error { +func (obj *bgpV4EviVxlanBroadcastDomain) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { +func (obj *bgpV4EviVxlanBroadcastDomain) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302357,12 +309203,12 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityMetricTag() + newObj := NewBgpV4EviVxlanBroadcastDomain() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302374,182 +309220,252 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosRe return newObj, nil } -// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosReliabilityMetricTag interface { +func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { + obj.cmacIpRangeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. +type BgpV4EviVxlanBroadcastDomain interface { Validation - // Msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // Msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag - // SetMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + Msg() *otg.BgpV4EviVxlanBroadcastDomain + // SetMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag - // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text + SetMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain + // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) + // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text + // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text + // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text + // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) + // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text + // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text + // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosReliabilityMetricTag + // Validate validates BgpV4EviVxlanBroadcastDomain Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) + Clone() (BgpV4EviVxlanBroadcastDomain, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetName(value string) PatternFlowIpv4TosReliabilityMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag - HasLength() bool + // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain + CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. + EthernetTagId() uint32 + // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain + SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain + // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain + HasEthernetTagId() bool + // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. + VlanAwareService() bool + // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain + SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain + // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain + HasVlanAwareService() bool + setNil() } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { +// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. +// +// Advertises following route - +// Type 2 - MAC/IP Advertisement Route. +// CmacIpRange returns a []BgpCMacIpRange +func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.obj.CmacIpRange) == 0 { + obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} + } + if obj.cmacIpRangeHolder == nil { + obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) + } + return obj.cmacIpRangeHolder +} - return obj.obj.Name +type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { + obj *bgpV4EviVxlanBroadcastDomain + bgpCMacIpRangeSlice []BgpCMacIpRange + fieldPtr *[]*otg.BgpCMacIpRange } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { +func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} +} - obj.obj.Name = value +type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { + setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Items() []BgpCMacIpRange + Add() BgpCMacIpRange + Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter +} + +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) + } + obj.obj = msg return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { + return obj.bgpCMacIpRangeSlice +} - return *obj.obj.Offset +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { + newObj := &otg.BgpCMacIpRange{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCMacIpRange{obj: newObj} + newLibObj.setDefault() + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) + return newLibObj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + } + return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpCMacIpRangeSlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCMacIpRange{} + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.bgpCMacIpRangeSlice) > 0 { + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + return obj } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { - obj.obj.Offset = &value + return *obj.obj.EthernetTagId + +} + +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { + return obj.obj.EthernetTagId != nil +} + +// The Ethernet Tag ID of the Broadcast Domain. +// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { + + obj.obj.EthernetTagId = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { - return *obj.obj.Length + return *obj.obj.VlanAwareService } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { - return obj.obj.Length != nil +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { + return obj.obj.VlanAwareService != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// VLAN-Aware service to be enabled or disabled. +// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { - obj.obj.Length = &value + obj.obj.VlanAwareService = &value return obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") - } - - if obj.obj.Offset != nil { + if len(obj.obj.CmacIpRange) != 0 { - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + if set_default { + obj.CmacIpRange().clearHolderSlice() + for _, item := range obj.obj.CmacIpRange { + obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) + } } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + for _, item := range obj.CmacIpRange().Items() { + item.validateObj(vObj, set_default) } } } -func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { + if obj.obj.EthernetTagId == nil { + obj.SetEthernetTagId(0) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.VlanAwareService == nil { + obj.SetVlanAwareService(false) } } -// ***** PatternFlowIpv4TosMonetaryCounter ***** -type patternFlowIpv4TosMonetaryCounter struct { +// ***** BgpRouteDistinguisher ***** +type bgpRouteDistinguisher struct { validation - obj *otg.PatternFlowIpv4TosMonetaryCounter + obj *otg.BgpRouteDistinguisher } -func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { - obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} +func NewBgpRouteDistinguisher() BgpRouteDistinguisher { + obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryCounter) Msg() *otg.PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) Msg() *otg.BgpRouteDistinguisher { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryCounter) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) SetMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302557,7 +309473,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4Tos return obj.Msg(), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302566,7 +309482,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4 return newObj, nil } -func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { +func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302578,7 +309494,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { +func (obj *bgpRouteDistinguisher) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -302591,7 +309507,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { +func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302612,7 +309528,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { +func (obj *bgpRouteDistinguisher) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302637,7 +309553,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { +func (obj *bgpRouteDistinguisher) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302655,7 +309571,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { +func (obj *bgpRouteDistinguisher) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -302676,19 +309592,19 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { +func (obj *bgpRouteDistinguisher) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) Validate() error { +func (obj *bgpRouteDistinguisher) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) String() string { +func (obj *bgpRouteDistinguisher) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302696,12 +309612,12 @@ func (obj *patternFlowIpv4TosMonetaryCounter) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryCounter() + newObj := NewBgpRouteDistinguisher() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302713,199 +309629,184 @@ func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetar return newObj, nil } -// PatternFlowIpv4TosMonetaryCounter is integer counter pattern -type PatternFlowIpv4TosMonetaryCounter interface { +// BgpRouteDistinguisher is bGP Route Distinguisher. +type BgpRouteDistinguisher interface { Validation - // Msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // Msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosMonetaryCounter - // SetMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + Msg() *otg.BgpRouteDistinguisher + // SetMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter - // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text + SetMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher + // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + ToProto() (*otg.BgpRouteDistinguisher, error) + // ToPbText marshals BgpRouteDistinguisher to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text + // ToYaml marshals BgpRouteDistinguisher to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text + // ToJson marshals BgpRouteDistinguisher to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text + // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) + // FromPbText unmarshals BgpRouteDistinguisher from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text + // FromYaml unmarshals BgpRouteDistinguisher from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text + // FromJson unmarshals BgpRouteDistinguisher from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosMonetaryCounter + // Validate validates BgpRouteDistinguisher Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryCounter, error) + Clone() (BgpRouteDistinguisher, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter - HasCount() bool + // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher + RdType() BgpRouteDistinguisherRdTypeEnum + // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher + SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher + // HasRdType checks if RdType has been set in BgpRouteDistinguisher + HasRdType() bool + // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. + AutoConfigRdIpAddr() bool + // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher + SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher + // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher + HasAutoConfigRdIpAddr() bool + // RdValue returns string, set in BgpRouteDistinguisher. + RdValue() string + // SetRdValue assigns string provided by user to BgpRouteDistinguisher + SetRdValue(value string) BgpRouteDistinguisher + // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher + HasRdValue() bool } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { +type BgpRouteDistinguisherRdTypeEnum string - return *obj.obj.Start +// Enum of RdType on BgpRouteDistinguisher +var BgpRouteDistinguisherRdType = struct { + AS_2OCTET BgpRouteDistinguisherRdTypeEnum + IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum + AS_4OCTET BgpRouteDistinguisherRdTypeEnum +}{ + AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), +} +func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { + return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { - return obj.obj.Start != nil +// Route Distinguisher Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RdType returns a string +func (obj *bgpRouteDistinguisher) HasRdType() bool { + return obj.obj.RdType != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { + intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) + obj.obj.RdType = &enumValue - obj.obj.Start = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { - return *obj.obj.Step + return *obj.obj.AutoConfigRdIpAddr } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { - return obj.obj.Step != nil +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { + return obj.obj.AutoConfigRdIpAddr != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { +// Allow to automatically configure RD IP address from local ip. +// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { - obj.obj.Step = &value + obj.obj.AutoConfigRdIpAddr = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) RdValue() string { - return *obj.obj.Count + return *obj.obj.RdValue } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { - return obj.obj.Count != nil +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) HasRdValue() bool { + return obj.obj.RdValue != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRdValue sets the string value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { - obj.obj.Count = &value + obj.obj.RdValue = &value return obj } -func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpRouteDistinguisher) setDefault() { + if obj.obj.RdType == nil { + obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) + } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.AutoConfigRdIpAddr == nil { + obj.SetAutoConfigRdIpAddr(false) } } -// ***** PatternFlowIpv4TosMonetaryMetricTag ***** -type patternFlowIpv4TosMonetaryMetricTag struct { +// ***** BgpRouteTarget ***** +type bgpRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosMonetaryMetricTag + obj *otg.BgpRouteTarget } -func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { - obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} +func NewBgpRouteTarget() BgpRouteTarget { + obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) Msg() *otg.BgpRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) SetMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302913,7 +309814,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302922,7 +309823,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { +func (obj *bgpRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302934,7 +309835,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { +func (obj *bgpRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -302947,7 +309848,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { +func (obj *bgpRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302968,7 +309869,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { +func (obj *bgpRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302993,7 +309894,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { +func (obj *bgpRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303011,7 +309912,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { +func (obj *bgpRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303032,19 +309933,19 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { +func (obj *bgpRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Validate() error { +func (obj *bgpRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { +func (obj *bgpRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303052,12 +309953,12 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryMetricTag() + newObj := NewBgpRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303069,182 +309970,149 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonet return newObj, nil } -// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosMonetaryMetricTag interface { +// BgpRouteTarget is bGP Route Target. +type BgpRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + // Msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag - // SetMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + Msg() *otg.BgpRouteTarget + // SetMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag - // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text + SetMsg(*otg.BgpRouteTarget) BgpRouteTarget + // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget + ToProto() (*otg.BgpRouteTarget, error) + // ToPbText marshals BgpRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text + // ToYaml marshals BgpRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text + // ToJson marshals BgpRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text + // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget + FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) + // FromPbText unmarshals BgpRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text + // FromYaml unmarshals BgpRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text + // FromJson unmarshals BgpRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosMonetaryMetricTag + // Validate validates BgpRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) + Clone() (BgpRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetName(value string) PatternFlowIpv4TosMonetaryMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - - return obj.obj.Name + // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget + RtType() BgpRouteTargetRtTypeEnum + // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget + SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget + // HasRtType checks if RtType has been set in BgpRouteTarget + HasRtType() bool + // RtValue returns string, set in BgpRouteTarget. + RtValue() string + // SetRtValue assigns string provided by user to BgpRouteTarget + SetRtValue(value string) BgpRouteTarget + // HasRtValue checks if RtValue has been set in BgpRouteTarget + HasRtValue() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { +type BgpRouteTargetRtTypeEnum string - obj.obj.Name = value - return obj +// Enum of RtType on BgpRouteTarget +var BgpRouteTargetRtType = struct { + AS_2OCTET BgpRouteTargetRtTypeEnum + IPV4_ADDRESS BgpRouteTargetRtTypeEnum + AS_4OCTET BgpRouteTargetRtTypeEnum +}{ + AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { - - return *obj.obj.Offset - +func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { + return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// Extended Community Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RtType returns a string +func (obj *bgpRouteTarget) HasRtType() bool { + return obj.obj.RtType != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { + intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) + obj.obj.RtType = &enumValue - obj.obj.Offset = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) RtValue() string { - return *obj.obj.Length + return *obj.obj.RtValue } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { - return obj.obj.Length != nil +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) HasRtValue() bool { + return obj.obj.RtValue != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRtValue sets the string value in the BgpRouteTarget object +func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { - obj.obj.Length = &value + obj.obj.RtValue = &value return obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) - } - if obj.obj.Length == nil { - obj.SetLength(1) - } +func (obj *bgpRouteTarget) setDefault() { } -// ***** PatternFlowIpv4TosUnusedCounter ***** -type patternFlowIpv4TosUnusedCounter struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosUnusedCounter + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget } -func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { - obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedCounter) Msg() *otg.PatternFlowIpv4TosUnusedCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosUnusedCounter) SetMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303252,7 +310120,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUn return obj.Msg(), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303261,7 +310129,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4To return newObj, nil } -func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303273,7 +310141,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303286,7 +310154,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303307,7 +310175,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -303332,7 +310200,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303350,7 +310218,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303371,19 +310239,19 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303391,12 +310259,12 @@ func (obj *patternFlowIpv4TosUnusedCounter) String() string { return str } -func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedCounter() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303408,199 +310276,148 @@ func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCou return newObj, nil } -// PatternFlowIpv4TosUnusedCounter is integer counter pattern -type PatternFlowIpv4TosUnusedCounter interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + // Msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosUnusedCounter - // SetMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter - // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter - ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) - // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter - FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosUnusedCounter + // Validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedCounter, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStart(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStep(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetCount(value uint32) PatternFlowIpv4TosUnusedCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { - - obj.obj.Start = &value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasLocal4ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Global2ByteAs() uint32 { - return *obj.obj.Step + return *obj.obj.Global_2ByteAs } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { - return obj.obj.Step != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Step = &value + obj.obj.Global_2ByteAs = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Local4ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_4ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4TosUnusedMetricTag ***** -type patternFlowIpv4TosUnusedMetricTag struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4TosUnusedMetricTag + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { - obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) Msg() *otg.PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303608,7 +310425,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4Tos return obj.Msg(), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303617,7 +310434,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4 return newObj, nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303629,7 +310446,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303642,7 +310459,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303663,7 +310480,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -303688,7 +310505,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303706,7 +310523,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303727,19 +310544,19 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303747,12 +310564,12 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedMetricTag() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303764,182 +310581,148 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedM return newObj, nil } -// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosUnusedMetricTag interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + // Msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosUnusedMetricTag - // SetMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag - // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosUnusedMetricTag + // Validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedMetricTag, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag - SetName(value string) PatternFlowIpv4TosUnusedMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { - - obj.obj.Name = value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasLocal4ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Global2ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_2ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.Global_2ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Local4ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_4ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbCounter ***** -type patternFlowIpv4DscpPhbCounter struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpPhbCounter + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget } -func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { - obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbCounter) Msg() *otg.PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpPhbCounter) SetMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303947,7 +310730,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhb return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303956,7 +310739,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4Dscp return newObj, nil } -func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303968,7 +310751,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303981,7 +310764,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304002,7 +310785,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304027,7 +310810,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304045,7 +310828,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304066,19 +310849,19 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304086,216 +310869,174 @@ func (obj *patternFlowIpv4DscpPhbCounter) String() string { return str } -func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbCounter() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err - } - pbErr := proto.Unmarshal(data, newObj.Msg()) - if pbErr != nil { - return nil, pbErr - } - return newObj, nil -} - -// PatternFlowIpv4DscpPhbCounter is integer counter pattern -type PatternFlowIpv4DscpPhbCounter interface { - Validation - // Msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter - // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpPhbCounter - // SetMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter - // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter - // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter - ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) - // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text - ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text - ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text - ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter - FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text - FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text - FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text - FromJson(value string) error - // Validate validates PatternFlowIpv4DscpPhbCounter - Validate() error - // A stringer function - String() string - // Clones the object - Clone() (PatternFlowIpv4DscpPhbCounter, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStart(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStep(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetCount(value uint32) PatternFlowIpv4DscpPhbCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { - return obj.obj.Start != nil + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { - - obj.obj.Start = &value - return obj +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { + Validation + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // and doesn't set defaults + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // and doesn't set defaults + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from JSON text + FromJson(value string) error + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasLocal2ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GlobalIpv4Admin() string { - return *obj.obj.Step + return *obj.obj.GlobalIpv4Admin } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { - return obj.obj.Step != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Step = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_2ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Step > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.GlobalIpv4Admin")) } } - if obj.obj.Count != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Count > 63 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbMetricTag ***** -type patternFlowIpv4DscpPhbMetricTag struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpPhbMetricTag + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { - obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) Msg() *otg.PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304303,7 +311044,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpP return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -304312,7 +311053,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4Ds return newObj, nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304324,7 +311065,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -304337,7 +311078,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304358,7 +311099,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304383,7 +311124,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304401,7 +311142,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304422,19 +311163,19 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304442,12 +311183,12 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbMetricTag() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -304459,182 +311200,157 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetri return newObj, nil } -// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpPhbMetricTag interface { +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpPhbMetricTag - // SetMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag - // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpPhbMetricTag + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpPhbMetricTag, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag - SetName(value string) PatternFlowIpv4DscpPhbMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { - - obj.obj.Name = value - return obj + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GlobalIpv4Admin() string { - return *obj.obj.Offset + return *obj.obj.GlobalIpv4Admin } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") - } - - if obj.obj.Offset != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Offset > 5 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.GlobalIpv4Admin")) } } - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 6 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Length == nil { - obj.SetLength(6) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnCounter ***** -type patternFlowIpv4DscpEcnCounter struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpEcnCounter + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget } -func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { - obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnCounter) Msg() *otg.PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpEcnCounter) SetMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304642,7 +311358,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcn return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -304651,7 +311367,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4Dscp return newObj, nil } -func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304663,7 +311379,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -304676,7 +311392,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304697,7 +311413,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304722,7 +311438,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304740,7 +311456,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304761,19 +311477,19 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304781,12 +311497,12 @@ func (obj *patternFlowIpv4DscpEcnCounter) String() string { return str } -func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnCounter() + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -304798,199 +311514,148 @@ func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter return newObj, nil } -// PatternFlowIpv4DscpEcnCounter is integer counter pattern -type PatternFlowIpv4DscpEcnCounter interface { +// BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 +type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + // Msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpEcnCounter - // SetMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter - // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter - ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) - // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter - FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpEcnCounter + // Validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnCounter, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStart(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStep(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetCount(value uint32) PatternFlowIpv4DscpEcnCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { - - obj.obj.Start = &value - return obj + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasLocal2ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Global4ByteAs() uint32 { - return *obj.obj.Step + return *obj.obj.Global_4ByteAs } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { - return obj.obj.Step != nil +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Step = &value + obj.obj.Global_4ByteAs = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_2ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Count > 3 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnMetricTag ***** -type patternFlowIpv4DscpEcnMetricTag struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpEcnMetricTag + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { - obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) Msg() *otg.PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304998,7 +311663,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpE return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305007,7 +311672,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4Ds return newObj, nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305019,7 +311684,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -305032,7 +311697,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305053,7 +311718,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305078,7 +311743,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305096,7 +311761,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305117,19 +311782,19 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305137,12 +311802,12 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnMetricTag() + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305154,182 +311819,148 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetri return newObj, nil } -// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpEcnMetricTag interface { +// BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + // Msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpEcnMetricTag - // SetMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag - // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpEcnMetricTag + // Validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnMetricTag, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag - SetName(value string) PatternFlowIpv4DscpEcnMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { - - obj.obj.Name = value - return obj + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Global4ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_4ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.Global_4ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 2 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(2) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** IsisLspPrefixAttributes ***** -type isisLspPrefixAttributes struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeColor ***** +type bgpExtendedCommunityTransitiveOpaqueTypeColor struct { validation - obj *otg.IsisLspPrefixAttributes + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor } -func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { - obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeColor() BgpExtendedCommunityTransitiveOpaqueTypeColor { + obj := bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeColor{}} obj.setDefault() return &obj } -func (obj *isisLspPrefixAttributes) Msg() *otg.IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor { return obj.obj } -func (obj *isisLspPrefixAttributes) SetMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor { proto.Merge(obj.obj, msg) return obj } -func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -305337,7 +311968,7 @@ func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, err return obj.Msg(), nil } -func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305346,7 +311977,7 @@ func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) return newObj, nil } -func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305358,7 +311989,7 @@ func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *isisLspPrefixAttributes) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -305371,7 +312002,7 @@ func (obj *isisLspPrefixAttributes) FromPbText(value string) error { return retObj } -func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305392,7 +312023,7 @@ func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { return string(data), nil } -func (obj *isisLspPrefixAttributes) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305417,7 +312048,7 @@ func (obj *isisLspPrefixAttributes) FromYaml(value string) error { return nil } -func (obj *isisLspPrefixAttributes) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305435,7 +312066,7 @@ func (obj *isisLspPrefixAttributes) ToJson() (string, error) { return string(data), nil } -func (obj *isisLspPrefixAttributes) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305456,19 +312087,19 @@ func (obj *isisLspPrefixAttributes) FromJson(value string) error { return nil } -func (obj *isisLspPrefixAttributes) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305476,12 +312107,12 @@ func (obj *isisLspPrefixAttributes) String() string { return str } -func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspPrefixAttributes() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeColor() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305493,161 +312124,148 @@ func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { return newObj, nil } -// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html -type IsisLspPrefixAttributes interface { +// BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. +type BgpExtendedCommunityTransitiveOpaqueTypeColor interface { Validation - // Msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + // Msg marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - Msg() *otg.IsisLspPrefixAttributes - // SetMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - SetMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes - // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes - ToProto() (*otg.IsisLspPrefixAttributes, error) - // ToPbText marshals IsisLspPrefixAttributes to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspPrefixAttributes to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspPrefixAttributes to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to JSON text ToJson() (string, error) - // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes - FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) - // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspPrefixAttributes from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspPrefixAttributes from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from JSON text FromJson(value string) error - // Validate validates IsisLspPrefixAttributes + // Validate validates BgpExtendedCommunityTransitiveOpaqueTypeColor Validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspPrefixAttributes, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // XFlag returns bool, set in IsisLspPrefixAttributes. - XFlag() bool - // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes - SetXFlag(value bool) IsisLspPrefixAttributes - // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes - HasXFlag() bool - // RFlag returns bool, set in IsisLspPrefixAttributes. - RFlag() bool - // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes - SetRFlag(value bool) IsisLspPrefixAttributes - // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes - HasRFlag() bool - // NFlag returns bool, set in IsisLspPrefixAttributes. - NFlag() bool - // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes - SetNFlag(value bool) IsisLspPrefixAttributes - // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes - HasNFlag() bool + // Flags returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Flags() uint32 + // SetFlags assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasFlags checks if Flags has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasFlags() bool + // Color returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Color() uint32 + // SetColor assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasColor checks if Color has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasColor() bool } -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) XFlag() bool { +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Flags() uint32 { - return *obj.obj.XFlag + return *obj.obj.Flags } -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) HasXFlag() bool { - return obj.obj.XFlag != nil +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasFlags() bool { + return obj.obj.Flags != nil } -// External Prefix Flag (Bit 0) -// SetXFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { +// Two octet flag values. +// SetFlags sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { - obj.obj.XFlag = &value + obj.obj.Flags = &value return obj } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) RFlag() bool { +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Color() uint32 { - return *obj.obj.RFlag + return *obj.obj.Color } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) HasRFlag() bool { - return obj.obj.RFlag != nil +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasColor() bool { + return obj.obj.Color != nil } -// Re-advertisement Flag (Bit 1) -// SetRFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// SetColor sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { - obj.obj.RFlag = &value + obj.obj.Color = &value return obj } -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) NFlag() bool { - - return *obj.obj.NFlag - -} - -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) HasNFlag() bool { - return obj.obj.NFlag != nil -} +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } -// Node Flag (Bit 2) -// SetNFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { + if obj.obj.Flags != nil { - obj.obj.NFlag = &value - return obj -} + if *obj.obj.Flags > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeColor.Flags <= 65535 but Got %d", *obj.obj.Flags)) + } -func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() } } -func (obj *isisLspPrefixAttributes) setDefault() { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setDefault() { + if obj.obj.Flags == nil { + obj.SetFlags(0) + } + if obj.obj.Color == nil { + obj.SetColor(0) + } } -// ***** BgpV4EviVxlanBroadcastDomain ***** -type bgpV4EviVxlanBroadcastDomain struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation ***** +type bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { validation - obj *otg.BgpV4EviVxlanBroadcastDomain - cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { - obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + obj := bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{}} obj.setDefault() return &obj } -func (obj *bgpV4EviVxlanBroadcastDomain) Msg() *otg.BgpV4EviVxlanBroadcastDomain { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { return obj.obj } -func (obj *bgpV4EviVxlanBroadcastDomain) SetMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { - obj.setNil() +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -305655,7 +312273,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastD return obj.Msg(), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305664,7 +312282,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadca return newObj, nil } -func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305676,12 +312294,12 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -305689,7 +312307,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { return retObj } -func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305710,7 +312328,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305727,7 +312345,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -305735,7 +312353,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return nil } -func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305753,7 +312371,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { return string(data), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305766,7 +312384,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -305774,19 +312392,19 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return nil } -func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305794,12 +312412,12 @@ func (obj *bgpV4EviVxlanBroadcastDomain) String() string { return str } -func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV4EviVxlanBroadcastDomain() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305811,252 +312429,169 @@ func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, return newObj, nil } -func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { - obj.cmacIpRangeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. -type BgpV4EviVxlanBroadcastDomain interface { +// BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { Validation - // Msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + // Msg marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - Msg() *otg.BgpV4EviVxlanBroadcastDomain - // SetMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - SetMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain - // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain - ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) - // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to YAML text ToYaml() (string, error) - // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to JSON text ToJson() (string, error) - // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain - FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) - // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from JSON text FromJson(value string) error - // Validate validates BgpV4EviVxlanBroadcastDomain + // Validate validates BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation Validate() error // A stringer function String() string // Clones the object - Clone() (BgpV4EviVxlanBroadcastDomain, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain - CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. - EthernetTagId() uint32 - // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain - SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain - // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain - HasEthernetTagId() bool - // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. - VlanAwareService() bool - // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain - SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain - // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain - HasVlanAwareService() bool - setNil() -} - -// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. -// -// Advertises following route - -// Type 2 - MAC/IP Advertisement Route. -// CmacIpRange returns a []BgpCMacIpRange -func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.obj.CmacIpRange) == 0 { - obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} - } - if obj.cmacIpRangeHolder == nil { - obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) - } - return obj.cmacIpRangeHolder -} - -type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { - obj *bgpV4EviVxlanBroadcastDomain - bgpCMacIpRangeSlice []BgpCMacIpRange - fieldPtr *[]*otg.BgpCMacIpRange -} - -func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} -} - -type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { - setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Items() []BgpCMacIpRange - Add() BgpCMacIpRange - Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) - } - obj.obj = msg - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { - return obj.bgpCMacIpRangeSlice -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { - newObj := &otg.BgpCMacIpRange{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCMacIpRange{obj: newObj} - newLibObj.setDefault() - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) - return newLibObj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - } - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpCMacIpRangeSlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCMacIpRange{} - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.bgpCMacIpRangeSlice) > 0 { - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - return obj + // Reserved returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + Reserved() uint32 + // SetReserved assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasReserved checks if Reserved has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasReserved() bool + // TunnelType returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + TunnelType() uint32 + // SetTunnelType assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasTunnelType checks if TunnelType has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasTunnelType() bool } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reserved() uint32 { - return *obj.obj.EthernetTagId + return *obj.obj.Reserved } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { - return obj.obj.EthernetTagId != nil +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasReserved() bool { + return obj.obj.Reserved != nil } -// The Ethernet Tag ID of the Broadcast Domain. -// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// SetReserved sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - obj.obj.EthernetTagId = &value + obj.obj.Reserved = &value return obj } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) TunnelType() uint32 { - return *obj.obj.VlanAwareService + return *obj.obj.TunnelType } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { - return obj.obj.VlanAwareService != nil +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasTunnelType() bool { + return obj.obj.TunnelType != nil } -// VLAN-Aware service to be enabled or disabled. -// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// SetTunnelType sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - obj.obj.VlanAwareService = &value + obj.obj.TunnelType = &value return obj } -func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.CmacIpRange) != 0 { + if obj.obj.TunnelType != nil { - if set_default { - obj.CmacIpRange().clearHolderSlice() - for _, item := range obj.obj.CmacIpRange { - obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) - } - } - for _, item := range obj.CmacIpRange().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.TunnelType > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.TunnelType <= 65535 but Got %d", *obj.obj.TunnelType)) } } } -func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { - if obj.obj.EthernetTagId == nil { - obj.SetEthernetTagId(0) +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setDefault() { + if obj.obj.Reserved == nil { + obj.SetReserved(0) } - if obj.obj.VlanAwareService == nil { - obj.SetVlanAwareService(false) + if obj.obj.TunnelType == nil { + obj.SetTunnelType(1) } } -// ***** BgpRouteDistinguisher ***** -type bgpRouteDistinguisher struct { +// ***** BgpExtendedCommunityTransitiveEvpnTypeRouterMac ***** +type bgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { validation - obj *otg.BgpRouteDistinguisher + obj *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac } -func NewBgpRouteDistinguisher() BgpRouteDistinguisher { - obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} +func NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + obj := bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: &otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac{}} obj.setDefault() return &obj } -func (obj *bgpRouteDistinguisher) Msg() *otg.BgpRouteDistinguisher { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac { return obj.obj } -func (obj *bgpRouteDistinguisher) SetMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -306064,7 +312599,7 @@ func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) return obj.Msg(), nil } -func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -306073,7 +312608,7 @@ func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (Bgp return newObj, nil } -func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306085,7 +312620,7 @@ func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpRouteDistinguisher) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -306098,7 +312633,7 @@ func (obj *bgpRouteDistinguisher) FromPbText(value string) error { return retObj } -func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306119,7 +312654,7 @@ func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpRouteDistinguisher) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(value string) error { if value == "" { value = "{}" } @@ -306144,7 +312679,7 @@ func (obj *bgpRouteDistinguisher) FromYaml(value string) error { return nil } -func (obj *bgpRouteDistinguisher) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306162,7 +312697,7 @@ func (obj *bgpRouteDistinguisher) ToJson() (string, error) { return string(data), nil } -func (obj *bgpRouteDistinguisher) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -306183,19 +312718,19 @@ func (obj *bgpRouteDistinguisher) FromJson(value string) error { return nil } -func (obj *bgpRouteDistinguisher) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) Validate() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) String() string { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -306203,12 +312738,12 @@ func (obj *bgpRouteDistinguisher) String() string { return str } -func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpRouteDistinguisher() + newObj := NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -306220,184 +312755,116 @@ func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { return newObj, nil } -// BgpRouteDistinguisher is bGP Route Distinguisher. -type BgpRouteDistinguisher interface { +// BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. +type BgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { Validation - // Msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + // Msg marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - Msg() *otg.BgpRouteDistinguisher - // SetMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + Msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // SetMsg unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - SetMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher - // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher - ToProto() (*otg.BgpRouteDistinguisher, error) - // ToPbText marshals BgpRouteDistinguisher to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // ToProto marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpRouteDistinguisher to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to YAML text ToYaml() (string, error) - // ToJson marshals BgpRouteDistinguisher to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to JSON text ToJson() (string, error) - // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher - FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) - // FromPbText unmarshals BgpRouteDistinguisher from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpRouteDistinguisher from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from YAML text FromYaml(value string) error - // FromJson unmarshals BgpRouteDistinguisher from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from JSON text FromJson(value string) error - // Validate validates BgpRouteDistinguisher + // Validate validates BgpExtendedCommunityTransitiveEvpnTypeRouterMac Validate() error // A stringer function String() string // Clones the object - Clone() (BgpRouteDistinguisher, error) + Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher - RdType() BgpRouteDistinguisherRdTypeEnum - // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher - SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher - // HasRdType checks if RdType has been set in BgpRouteDistinguisher - HasRdType() bool - // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. - AutoConfigRdIpAddr() bool - // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher - SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher - // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher - HasAutoConfigRdIpAddr() bool - // RdValue returns string, set in BgpRouteDistinguisher. - RdValue() string - // SetRdValue assigns string provided by user to BgpRouteDistinguisher - SetRdValue(value string) BgpRouteDistinguisher - // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher - HasRdValue() bool -} - -type BgpRouteDistinguisherRdTypeEnum string - -// Enum of RdType on BgpRouteDistinguisher -var BgpRouteDistinguisherRdType = struct { - AS_2OCTET BgpRouteDistinguisherRdTypeEnum - IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum - AS_4OCTET BgpRouteDistinguisherRdTypeEnum -}{ - AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), -} - -func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { - return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) -} - -// Route Distinguisher Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RdType returns a string -func (obj *bgpRouteDistinguisher) HasRdType() bool { - return obj.obj.RdType != nil -} - -func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { - intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) - obj.obj.RdType = &enumValue - - return obj -} - -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { - - return *obj.obj.AutoConfigRdIpAddr - -} - -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { - return obj.obj.AutoConfigRdIpAddr != nil -} - -// Allow to automatically configure RD IP address from local ip. -// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { - - obj.obj.AutoConfigRdIpAddr = &value - return obj + // RouterMac returns string, set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac. + RouterMac() string + // SetRouterMac assigns string provided by user to BgpExtendedCommunityTransitiveEvpnTypeRouterMac + SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // HasRouterMac checks if RouterMac has been set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac + HasRouterMac() bool } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) RdValue() string { +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) RouterMac() string { - return *obj.obj.RdValue + return *obj.obj.RouterMac } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) HasRdValue() bool { - return obj.obj.RdValue != nil +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) HasRouterMac() bool { + return obj.obj.RouterMac != nil } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRdValue sets the string value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { +// MAC Address of the PE Router. +// SetRouterMac sets the string value in the BgpExtendedCommunityTransitiveEvpnTypeRouterMac object +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - obj.obj.RdValue = &value + obj.obj.RouterMac = &value return obj } -func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } -} + if obj.obj.RouterMac != nil { -func (obj *bgpRouteDistinguisher) setDefault() { - if obj.obj.RdType == nil { - obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) + err := obj.validateMac(obj.RouterMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveEvpnTypeRouterMac.RouterMac")) + } } - if obj.obj.AutoConfigRdIpAddr == nil { - obj.SetAutoConfigRdIpAddr(false) + +} + +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setDefault() { + if obj.obj.RouterMac == nil { + obj.SetRouterMac("0:0:0:0:0:0") } } -// ***** BgpRouteTarget ***** -type bgpRouteTarget struct { +// ***** BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth ***** +type bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { validation - obj *otg.BgpRouteTarget + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -func NewBgpRouteTarget() BgpRouteTarget { - obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} +func NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + obj := bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{}} obj.setDefault() return &obj } -func (obj *bgpRouteTarget) Msg() *otg.BgpRouteTarget { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { return obj.obj } -func (obj *bgpRouteTarget) SetMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -306405,7 +312872,7 @@ func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { return obj.Msg(), nil } -func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -306414,7 +312881,7 @@ func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, e return newObj, nil } -func (obj *bgpRouteTarget) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306426,7 +312893,7 @@ func (obj *bgpRouteTarget) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpRouteTarget) FromPbText(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -306439,7 +312906,7 @@ func (obj *bgpRouteTarget) FromPbText(value string) error { return retObj } -func (obj *bgpRouteTarget) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306460,7 +312927,7 @@ func (obj *bgpRouteTarget) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpRouteTarget) FromYaml(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromYaml(value string) error { if value == "" { value = "{}" } @@ -306485,7 +312952,7 @@ func (obj *bgpRouteTarget) FromYaml(value string) error { return nil } -func (obj *bgpRouteTarget) ToJson() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306503,7 +312970,7 @@ func (obj *bgpRouteTarget) ToJson() (string, error) { return string(data), nil } -func (obj *bgpRouteTarget) FromJson(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -306524,19 +312991,19 @@ func (obj *bgpRouteTarget) FromJson(value string) error { return nil } -func (obj *bgpRouteTarget) validateToAndFrom() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpRouteTarget) Validate() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpRouteTarget) String() string { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -306544,12 +313011,12 @@ func (obj *bgpRouteTarget) String() string { return str } -func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpRouteTarget() + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -306561,123 +313028,122 @@ func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { return newObj, nil } -// BgpRouteTarget is bGP Route Target. -type BgpRouteTarget interface { +// BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { Validation - // Msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget + // Msg marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - Msg() *otg.BgpRouteTarget - // SetMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget + Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // SetMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - SetMsg(*otg.BgpRouteTarget) BgpRouteTarget - // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget - ToProto() (*otg.BgpRouteTarget, error) - // ToPbText marshals BgpRouteTarget to protobuf text + SetMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpRouteTarget to YAML text + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to YAML text ToYaml() (string, error) - // ToJson marshals BgpRouteTarget to JSON text + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to JSON text ToJson() (string, error) - // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget - FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) - // FromPbText unmarshals BgpRouteTarget from protobuf text + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpRouteTarget from YAML text + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from YAML text FromYaml(value string) error - // FromJson unmarshals BgpRouteTarget from JSON text + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from JSON text FromJson(value string) error - // Validate validates BgpRouteTarget + // Validate validates BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth Validate() error // A stringer function String() string // Clones the object - Clone() (BgpRouteTarget, error) + Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget - RtType() BgpRouteTargetRtTypeEnum - // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget - SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget - // HasRtType checks if RtType has been set in BgpRouteTarget - HasRtType() bool - // RtValue returns string, set in BgpRouteTarget. - RtValue() string - // SetRtValue assigns string provided by user to BgpRouteTarget - SetRtValue(value string) BgpRouteTarget - // HasRtValue checks if RtValue has been set in BgpRouteTarget - HasRtValue() bool + // Global2ByteAs returns uint32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasGlobal2ByteAs() bool + // Bandwidth returns float32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Bandwidth() float32 + // SetBandwidth assigns float32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasBandwidth checks if Bandwidth has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasBandwidth() bool } -type BgpRouteTargetRtTypeEnum string +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Global2ByteAs() uint32 { -// Enum of RtType on BgpRouteTarget -var BgpRouteTargetRtType = struct { - AS_2OCTET BgpRouteTargetRtTypeEnum - IPV4_ADDRESS BgpRouteTargetRtTypeEnum - AS_4OCTET BgpRouteTargetRtTypeEnum -}{ - AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), -} + return *obj.obj.Global_2ByteAs -func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { - return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) } -// Extended Community Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RtType returns a string -func (obj *bgpRouteTarget) HasRtType() bool { - return obj.obj.RtType != nil +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { - intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) - obj.obj.RtType = &enumValue +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + obj.obj.Global_2ByteAs = &value return obj } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) RtValue() string { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Bandwidth() float32 { - return *obj.obj.RtValue + return *obj.obj.Bandwidth } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) HasRtValue() bool { - return obj.obj.RtValue != nil +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasBandwidth() bool { + return obj.obj.Bandwidth != nil } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRtValue sets the string value in the BgpRouteTarget object -func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// SetBandwidth sets the float32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - obj.obj.RtValue = &value + obj.obj.Bandwidth = &value return obj } -func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } + if obj.obj.Global_2ByteAs != nil { + + if *obj.obj.Global_2ByteAs > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) + } + + } + } -func (obj *bgpRouteTarget) setDefault() { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) + } + if obj.obj.Bandwidth == nil { + obj.SetBandwidth(0) + } } diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 4d38b205..e0febd96 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.12.2 +// Open Traffic Generator API 0.12.3 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -2076,6 +2076,358 @@ func (BgpV4RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) return file_otg_proto_rawDescGZIP(), []int{80, 1, 0} } +type BgpExtendedCommunity_Choice_Enum int32 + +const ( + BgpExtendedCommunity_Choice_unspecified BgpExtendedCommunity_Choice_Enum = 0 + BgpExtendedCommunity_Choice_transitive_2octet_as_type BgpExtendedCommunity_Choice_Enum = 1 + BgpExtendedCommunity_Choice_transitive_ipv4_address_type BgpExtendedCommunity_Choice_Enum = 2 + BgpExtendedCommunity_Choice_transitive_4octet_as_type BgpExtendedCommunity_Choice_Enum = 3 + BgpExtendedCommunity_Choice_transitive_opaque_type BgpExtendedCommunity_Choice_Enum = 4 + BgpExtendedCommunity_Choice_transitive_evpn_type BgpExtendedCommunity_Choice_Enum = 5 + BgpExtendedCommunity_Choice_non_transitive_2octet_as_type BgpExtendedCommunity_Choice_Enum = 6 + BgpExtendedCommunity_Choice_custom BgpExtendedCommunity_Choice_Enum = 7 +) + +// Enum value maps for BgpExtendedCommunity_Choice_Enum. +var ( + BgpExtendedCommunity_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "transitive_2octet_as_type", + 2: "transitive_ipv4_address_type", + 3: "transitive_4octet_as_type", + 4: "transitive_opaque_type", + 5: "transitive_evpn_type", + 6: "non_transitive_2octet_as_type", + 7: "custom", + } + BgpExtendedCommunity_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "transitive_2octet_as_type": 1, + "transitive_ipv4_address_type": 2, + "transitive_4octet_as_type": 3, + "transitive_opaque_type": 4, + "transitive_evpn_type": 5, + "non_transitive_2octet_as_type": 6, + "custom": 7, + } +) + +func (x BgpExtendedCommunity_Choice_Enum) Enum() *BgpExtendedCommunity_Choice_Enum { + p := new(BgpExtendedCommunity_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunity_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunity_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[38].Descriptor() +} + +func (BgpExtendedCommunity_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[38] +} + +func (x BgpExtendedCommunity_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunity_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunity_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82, 0, 0} +} + +type BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityTransitive2OctetAsType_Choice_route_target_subtype BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 1 + BgpExtendedCommunityTransitive2OctetAsType_Choice_route_origin_subtype BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[39].Descriptor() +} + +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[39] +} + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0, 0} +} + +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_route_target_subtype BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 1 + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_route_origin_subtype BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[40].Descriptor() +} + +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[40] +} + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0, 0} +} + +type BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityTransitive4OctetAsType_Choice_route_target_subtype BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 1 + BgpExtendedCommunityTransitive4OctetAsType_Choice_route_origin_subtype BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[41].Descriptor() +} + +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[41] +} + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91, 0, 0} +} + +type BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveOpaqueType_Choice_color_subtype BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 1 + BgpExtendedCommunityTransitiveOpaqueType_Choice_encapsulation_subtype BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "color_subtype", + 2: "encapsulation_subtype", + } + BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "color_subtype": 1, + "encapsulation_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[42].Descriptor() +} + +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[42] +} + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0, 0} +} + +type BgpExtendedCommunityTransitiveEvpnType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified BgpExtendedCommunityTransitiveEvpnType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveEvpnType_Choice_router_mac_subtype BgpExtendedCommunityTransitiveEvpnType_Choice_Enum = 1 +) + +// Enum value maps for BgpExtendedCommunityTransitiveEvpnType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "router_mac_subtype", + } + BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "router_mac_subtype": 1, + } +) + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[43].Descriptor() +} + +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[43] +} + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0, 0} +} + +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_link_bandwidth_subtype BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum = 1 +) + +// Enum value maps for BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "link_bandwidth_subtype", + } + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "link_bandwidth_subtype": 1, + } +) + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[44].Descriptor() +} + +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[44] +} + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0, 0} +} + type BgpV6RouteRange_NextHopMode_Enum int32 const ( @@ -2109,11 +2461,11 @@ func (x BgpV6RouteRange_NextHopMode_Enum) String() string { } func (BgpV6RouteRange_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[38].Descriptor() + return file_otg_proto_enumTypes[45].Descriptor() } func (BgpV6RouteRange_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[38] + return &file_otg_proto_enumTypes[45] } func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2122,7 +2474,7 @@ func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6RouteRange_NextHopMode_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 0, 0} } type BgpV6RouteRange_NextHopAddressType_Enum int32 @@ -2158,11 +2510,11 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) String() string { } func (BgpV6RouteRange_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[39].Descriptor() + return file_otg_proto_enumTypes[46].Descriptor() } func (BgpV6RouteRange_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[39] + return &file_otg_proto_enumTypes[46] } func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2171,7 +2523,7 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpV6RouteRange_NextHopAddressType_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 1, 0} } type BgpSrteV4Policy_NextHopMode_Enum int32 @@ -2207,11 +2559,11 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) String() string { } func (BgpSrteV4Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[40].Descriptor() + return file_otg_proto_enumTypes[47].Descriptor() } func (BgpSrteV4Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[40] + return &file_otg_proto_enumTypes[47] } func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2220,7 +2572,7 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV4Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{101, 0, 0} } type BgpSrteV4Policy_NextHopAddressType_Enum int32 @@ -2256,11 +2608,11 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV4Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[41].Descriptor() + return file_otg_proto_enumTypes[48].Descriptor() } func (BgpSrteV4Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[41] + return &file_otg_proto_enumTypes[48] } func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2269,7 +2621,7 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV4Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{101, 1, 0} } type BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum int32 @@ -2305,11 +2657,11 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) String() string { } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[42].Descriptor() + return file_otg_proto_enumTypes[49].Descriptor() } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[42] + return &file_otg_proto_enumTypes[49] } func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.EnumNumber { @@ -2318,7 +2670,7 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.En // Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum.Descriptor instead. func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{103, 0, 0} } type BgpSrteBindingSubTlv_BindingSidType_Enum int32 @@ -2357,11 +2709,11 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) String() string { } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[43].Descriptor() + return file_otg_proto_enumTypes[50].Descriptor() } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[43] + return &file_otg_proto_enumTypes[50] } func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumber { @@ -2370,7 +2722,7 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpSrteBindingSubTlv_BindingSidType_Enum.Descriptor instead. func (BgpSrteBindingSubTlv_BindingSidType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{105, 0, 0} } type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum int32 @@ -2415,11 +2767,11 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Strin } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[44].Descriptor() + return file_otg_proto_enumTypes[51].Descriptor() } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[44] + return &file_otg_proto_enumTypes[51] } func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Number() protoreflect.EnumNumber { @@ -2428,7 +2780,7 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Numbe // Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum.Descriptor instead. func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{109, 0, 0} } type BgpSrteSegment_SegmentType_Enum int32 @@ -2491,11 +2843,11 @@ func (x BgpSrteSegment_SegmentType_Enum) String() string { } func (BgpSrteSegment_SegmentType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[45].Descriptor() + return file_otg_proto_enumTypes[52].Descriptor() } func (BgpSrteSegment_SegmentType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[45] + return &file_otg_proto_enumTypes[52] } func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { @@ -2504,7 +2856,7 @@ func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteSegment_SegmentType_Enum.Descriptor instead. func (BgpSrteSegment_SegmentType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{111, 0, 0} } type BgpSrteV6Policy_NextHopMode_Enum int32 @@ -2540,11 +2892,11 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) String() string { } func (BgpSrteV6Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[46].Descriptor() + return file_otg_proto_enumTypes[53].Descriptor() } func (BgpSrteV6Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[46] + return &file_otg_proto_enumTypes[53] } func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2553,7 +2905,7 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV6Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{125, 0, 0} } type BgpSrteV6Policy_NextHopAddressType_Enum int32 @@ -2589,11 +2941,11 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV6Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[47].Descriptor() + return file_otg_proto_enumTypes[54].Descriptor() } func (BgpSrteV6Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[47] + return &file_otg_proto_enumTypes[54] } func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2602,7 +2954,7 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV6Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{125, 1, 0} } type BgpV6Peer_AsType_Enum int32 @@ -2638,11 +2990,11 @@ func (x BgpV6Peer_AsType_Enum) String() string { } func (BgpV6Peer_AsType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[48].Descriptor() + return file_otg_proto_enumTypes[55].Descriptor() } func (BgpV6Peer_AsType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[48] + return &file_otg_proto_enumTypes[55] } func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { @@ -2651,7 +3003,7 @@ func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsType_Enum.Descriptor instead. func (BgpV6Peer_AsType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{128, 0, 0} } type BgpV6Peer_AsNumberWidth_Enum int32 @@ -2687,11 +3039,11 @@ func (x BgpV6Peer_AsNumberWidth_Enum) String() string { } func (BgpV6Peer_AsNumberWidth_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[49].Descriptor() + return file_otg_proto_enumTypes[56].Descriptor() } func (BgpV6Peer_AsNumberWidth_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[49] + return &file_otg_proto_enumTypes[56] } func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { @@ -2700,7 +3052,7 @@ func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsNumberWidth_Enum.Descriptor instead. func (BgpV6Peer_AsNumberWidth_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{128, 1, 0} } type BgpV6EthernetSegment_ActiveMode_Enum int32 @@ -2736,11 +3088,11 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) String() string { } func (BgpV6EthernetSegment_ActiveMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[50].Descriptor() + return file_otg_proto_enumTypes[57].Descriptor() } func (BgpV6EthernetSegment_ActiveMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[50] + return &file_otg_proto_enumTypes[57] } func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { @@ -2749,7 +3101,7 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EthernetSegment_ActiveMode_Enum.Descriptor instead. func (BgpV6EthernetSegment_ActiveMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{131, 0, 0} } type BgpV6EvpnEvis_Choice_Enum int32 @@ -2782,11 +3134,11 @@ func (x BgpV6EvpnEvis_Choice_Enum) String() string { } func (BgpV6EvpnEvis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[51].Descriptor() + return file_otg_proto_enumTypes[58].Descriptor() } func (BgpV6EvpnEvis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[51] + return &file_otg_proto_enumTypes[58] } func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2795,7 +3147,7 @@ func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EvpnEvis_Choice_Enum.Descriptor instead. func (BgpV6EvpnEvis_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{132, 0, 0} } type BgpV6EviVxlan_ReplicationType_Enum int32 @@ -2828,11 +3180,11 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) String() string { } func (BgpV6EviVxlan_ReplicationType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[52].Descriptor() + return file_otg_proto_enumTypes[59].Descriptor() } func (BgpV6EviVxlan_ReplicationType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[52] + return &file_otg_proto_enumTypes[59] } func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { @@ -2841,7 +3193,7 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EviVxlan_ReplicationType_Enum.Descriptor instead. func (BgpV6EviVxlan_ReplicationType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{133, 0, 0} } type VxlanV4TunnelDestinationIPMode_Choice_Enum int32 @@ -2877,11 +3229,11 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[53].Descriptor() + return file_otg_proto_enumTypes[60].Descriptor() } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[53] + return &file_otg_proto_enumTypes[60] } func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2890,7 +3242,7 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV4TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{138, 0, 0} } type VxlanV6TunnelDestinationIPMode_Choice_Enum int32 @@ -2926,11 +3278,11 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[54].Descriptor() + return file_otg_proto_enumTypes[61].Descriptor() } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[54] + return &file_otg_proto_enumTypes[61] } func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2939,7 +3291,7 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV6TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{139, 0, 0} } type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum int32 @@ -2978,11 +3330,11 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) String() str } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[55].Descriptor() + return file_otg_proto_enumTypes[62].Descriptor() } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[55] + return &file_otg_proto_enumTypes[62] } func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() protoreflect.EnumNumber { @@ -2991,7 +3343,7 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() pro // Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum.Descriptor instead. func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{150, 0, 0} } type RsvpEro_PrependNeighborIp_Enum int32 @@ -3030,11 +3382,11 @@ func (x RsvpEro_PrependNeighborIp_Enum) String() string { } func (RsvpEro_PrependNeighborIp_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[56].Descriptor() + return file_otg_proto_enumTypes[63].Descriptor() } func (RsvpEro_PrependNeighborIp_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[56] + return &file_otg_proto_enumTypes[63] } func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { @@ -3043,7 +3395,7 @@ func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEro_PrependNeighborIp_Enum.Descriptor instead. func (RsvpEro_PrependNeighborIp_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{156, 0, 0} } type RsvpEroSubobject_Type_Enum int32 @@ -3079,11 +3431,11 @@ func (x RsvpEroSubobject_Type_Enum) String() string { } func (RsvpEroSubobject_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[57].Descriptor() + return file_otg_proto_enumTypes[64].Descriptor() } func (RsvpEroSubobject_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[57] + return &file_otg_proto_enumTypes[64] } func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { @@ -3092,7 +3444,7 @@ func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_Type_Enum.Descriptor instead. func (RsvpEroSubobject_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 0, 0} } type RsvpEroSubobject_HopType_Enum int32 @@ -3128,11 +3480,11 @@ func (x RsvpEroSubobject_HopType_Enum) String() string { } func (RsvpEroSubobject_HopType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[58].Descriptor() + return file_otg_proto_enumTypes[65].Descriptor() } func (RsvpEroSubobject_HopType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[58] + return &file_otg_proto_enumTypes[65] } func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { @@ -3141,7 +3493,7 @@ func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_HopType_Enum.Descriptor instead. func (RsvpEroSubobject_HopType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 1, 0} } type FlowTxRx_Choice_Enum int32 @@ -3177,11 +3529,11 @@ func (x FlowTxRx_Choice_Enum) String() string { } func (FlowTxRx_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[59].Descriptor() + return file_otg_proto_enumTypes[66].Descriptor() } func (FlowTxRx_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[59] + return &file_otg_proto_enumTypes[66] } func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3190,7 +3542,7 @@ func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowTxRx_Choice_Enum.Descriptor instead. func (FlowTxRx_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{159, 0, 0} } type FlowRouter_Mode_Enum int32 @@ -3226,11 +3578,11 @@ func (x FlowRouter_Mode_Enum) String() string { } func (FlowRouter_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[60].Descriptor() + return file_otg_proto_enumTypes[67].Descriptor() } func (FlowRouter_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[60] + return &file_otg_proto_enumTypes[67] } func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { @@ -3239,7 +3591,7 @@ func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRouter_Mode_Enum.Descriptor instead. func (FlowRouter_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{161, 0, 0} } type FlowHeader_Choice_Enum int32 @@ -3326,11 +3678,11 @@ func (x FlowHeader_Choice_Enum) String() string { } func (FlowHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[61].Descriptor() + return file_otg_proto_enumTypes[68].Descriptor() } func (FlowHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[61] + return &file_otg_proto_enumTypes[68] } func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3339,7 +3691,7 @@ func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowHeader_Choice_Enum.Descriptor instead. func (FlowHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{162, 0, 0} } type FlowIpv4Priority_Choice_Enum int32 @@ -3378,11 +3730,11 @@ func (x FlowIpv4Priority_Choice_Enum) String() string { } func (FlowIpv4Priority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[62].Descriptor() + return file_otg_proto_enumTypes[69].Descriptor() } func (FlowIpv4Priority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[62] + return &file_otg_proto_enumTypes[69] } func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3391,7 +3743,7 @@ func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIpv4Priority_Choice_Enum.Descriptor instead. func (FlowIpv4Priority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{169, 0, 0} } type FlowIcmp_Choice_Enum int32 @@ -3424,11 +3776,11 @@ func (x FlowIcmp_Choice_Enum) String() string { } func (FlowIcmp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[63].Descriptor() + return file_otg_proto_enumTypes[70].Descriptor() } func (FlowIcmp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[63] + return &file_otg_proto_enumTypes[70] } func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3437,7 +3789,7 @@ func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmp_Choice_Enum.Descriptor instead. func (FlowIcmp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{182, 0, 0} } type FlowIcmpv6_Choice_Enum int32 @@ -3470,11 +3822,11 @@ func (x FlowIcmpv6_Choice_Enum) String() string { } func (FlowIcmpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[64].Descriptor() + return file_otg_proto_enumTypes[71].Descriptor() } func (FlowIcmpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[64] + return &file_otg_proto_enumTypes[71] } func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3483,7 +3835,7 @@ func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmpv6_Choice_Enum.Descriptor instead. func (FlowIcmpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{184, 0, 0} } type FlowSize_Choice_Enum int32 @@ -3525,11 +3877,11 @@ func (x FlowSize_Choice_Enum) String() string { } func (FlowSize_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[65].Descriptor() + return file_otg_proto_enumTypes[72].Descriptor() } func (FlowSize_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[65] + return &file_otg_proto_enumTypes[72] } func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3538,7 +3890,7 @@ func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSize_Choice_Enum.Descriptor instead. func (FlowSize_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{189, 0, 0} } type FlowSizeWeightPairs_Choice_Enum int32 @@ -3574,11 +3926,11 @@ func (x FlowSizeWeightPairs_Choice_Enum) String() string { } func (FlowSizeWeightPairs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[66].Descriptor() + return file_otg_proto_enumTypes[73].Descriptor() } func (FlowSizeWeightPairs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[66] + return &file_otg_proto_enumTypes[73] } func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3587,7 +3939,7 @@ func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Choice_Enum.Descriptor instead. func (FlowSizeWeightPairs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{192, 0, 0} } type FlowSizeWeightPairs_Predefined_Enum int32 @@ -3632,11 +3984,11 @@ func (x FlowSizeWeightPairs_Predefined_Enum) String() string { } func (FlowSizeWeightPairs_Predefined_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[67].Descriptor() + return file_otg_proto_enumTypes[74].Descriptor() } func (FlowSizeWeightPairs_Predefined_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[67] + return &file_otg_proto_enumTypes[74] } func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { @@ -3645,7 +3997,7 @@ func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Predefined_Enum.Descriptor instead. func (FlowSizeWeightPairs_Predefined_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{192, 1, 0} } type FlowRate_Choice_Enum int32 @@ -3693,11 +4045,11 @@ func (x FlowRate_Choice_Enum) String() string { } func (FlowRate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[68].Descriptor() + return file_otg_proto_enumTypes[75].Descriptor() } func (FlowRate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[68] + return &file_otg_proto_enumTypes[75] } func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3706,7 +4058,7 @@ func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRate_Choice_Enum.Descriptor instead. func (FlowRate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{176, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{194, 0, 0} } type FlowDuration_Choice_Enum int32 @@ -3748,11 +4100,11 @@ func (x FlowDuration_Choice_Enum) String() string { } func (FlowDuration_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[69].Descriptor() + return file_otg_proto_enumTypes[76].Descriptor() } func (FlowDuration_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[69] + return &file_otg_proto_enumTypes[76] } func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3761,7 +4113,7 @@ func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDuration_Choice_Enum.Descriptor instead. func (FlowDuration_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{177, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{195, 0, 0} } type FlowDelay_Choice_Enum int32 @@ -3800,11 +4152,11 @@ func (x FlowDelay_Choice_Enum) String() string { } func (FlowDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[70].Descriptor() + return file_otg_proto_enumTypes[77].Descriptor() } func (FlowDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[70] + return &file_otg_proto_enumTypes[77] } func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3813,7 +4165,7 @@ func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDelay_Choice_Enum.Descriptor instead. func (FlowDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{197, 0, 0} } type FlowDurationInterBurstGap_Choice_Enum int32 @@ -3852,11 +4204,11 @@ func (x FlowDurationInterBurstGap_Choice_Enum) String() string { } func (FlowDurationInterBurstGap_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[71].Descriptor() + return file_otg_proto_enumTypes[78].Descriptor() } func (FlowDurationInterBurstGap_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[71] + return &file_otg_proto_enumTypes[78] } func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3865,7 +4217,7 @@ func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use FlowDurationInterBurstGap_Choice_Enum.Descriptor instead. func (FlowDurationInterBurstGap_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} } type FlowLatencyMetrics_Mode_Enum int32 @@ -3901,11 +4253,11 @@ func (x FlowLatencyMetrics_Mode_Enum) String() string { } func (FlowLatencyMetrics_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[72].Descriptor() + return file_otg_proto_enumTypes[79].Descriptor() } func (FlowLatencyMetrics_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[72] + return &file_otg_proto_enumTypes[79] } func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { @@ -3914,7 +4266,7 @@ func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowLatencyMetrics_Mode_Enum.Descriptor instead. func (FlowLatencyMetrics_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{203, 0, 0} } type FlowRxTxRatio_Choice_Enum int32 @@ -3950,11 +4302,11 @@ func (x FlowRxTxRatio_Choice_Enum) String() string { } func (FlowRxTxRatio_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[73].Descriptor() + return file_otg_proto_enumTypes[80].Descriptor() } func (FlowRxTxRatio_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[73] + return &file_otg_proto_enumTypes[80] } func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3963,7 +4315,7 @@ func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRxTxRatio_Choice_Enum.Descriptor instead. func (FlowRxTxRatio_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} } type EventRequest_Type_Enum int32 @@ -4011,11 +4363,11 @@ func (x EventRequest_Type_Enum) String() string { } func (EventRequest_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[74].Descriptor() + return file_otg_proto_enumTypes[81].Descriptor() } func (EventRequest_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[74] + return &file_otg_proto_enumTypes[81] } func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { @@ -4024,7 +4376,7 @@ func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use EventRequest_Type_Enum.Descriptor instead. func (EventRequest_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{211, 0, 0} } type LldpConnection_Choice_Enum int32 @@ -4057,11 +4409,11 @@ func (x LldpConnection_Choice_Enum) String() string { } func (LldpConnection_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[75].Descriptor() + return file_otg_proto_enumTypes[82].Descriptor() } func (LldpConnection_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[75] + return &file_otg_proto_enumTypes[82] } func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4070,7 +4422,7 @@ func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpConnection_Choice_Enum.Descriptor instead. func (LldpConnection_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{214, 0, 0} } type LldpChassisId_Choice_Enum int32 @@ -4109,11 +4461,11 @@ func (x LldpChassisId_Choice_Enum) String() string { } func (LldpChassisId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[76].Descriptor() + return file_otg_proto_enumTypes[83].Descriptor() } func (LldpChassisId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[76] + return &file_otg_proto_enumTypes[83] } func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4122,7 +4474,7 @@ func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisId_Choice_Enum.Descriptor instead. func (LldpChassisId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} } type LldpPortId_Choice_Enum int32 @@ -4161,11 +4513,11 @@ func (x LldpPortId_Choice_Enum) String() string { } func (LldpPortId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[77].Descriptor() + return file_otg_proto_enumTypes[84].Descriptor() } func (LldpPortId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[77] + return &file_otg_proto_enumTypes[84] } func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4174,7 +4526,7 @@ func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpPortId_Choice_Enum.Descriptor instead. func (LldpPortId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{216, 0, 0} } type LldpChassisMacSubType_Choice_Enum int32 @@ -4210,11 +4562,11 @@ func (x LldpChassisMacSubType_Choice_Enum) String() string { } func (LldpChassisMacSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[78].Descriptor() + return file_otg_proto_enumTypes[85].Descriptor() } func (LldpChassisMacSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[78] + return &file_otg_proto_enumTypes[85] } func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4223,7 +4575,7 @@ func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisMacSubType_Choice_Enum.Descriptor instead. func (LldpChassisMacSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{217, 0, 0} } type LldpPortInterfaceNameSubType_Choice_Enum int32 @@ -4259,11 +4611,11 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) String() string { } func (LldpPortInterfaceNameSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[79].Descriptor() + return file_otg_proto_enumTypes[86].Descriptor() } func (LldpPortInterfaceNameSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[79] + return &file_otg_proto_enumTypes[86] } func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4272,7 +4624,7 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use LldpPortInterfaceNameSubType_Choice_Enum.Descriptor instead. func (LldpPortInterfaceNameSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{218, 0, 0} } type LldpSystemName_Choice_Enum int32 @@ -4308,11 +4660,11 @@ func (x LldpSystemName_Choice_Enum) String() string { } func (LldpSystemName_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[80].Descriptor() + return file_otg_proto_enumTypes[87].Descriptor() } func (LldpSystemName_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[80] + return &file_otg_proto_enumTypes[87] } func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4321,7 +4673,7 @@ func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpSystemName_Choice_Enum.Descriptor instead. func (LldpSystemName_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} } type Error_Kind_Enum int32 @@ -4357,11 +4709,11 @@ func (x Error_Kind_Enum) String() string { } func (Error_Kind_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[81].Descriptor() + return file_otg_proto_enumTypes[88].Descriptor() } func (Error_Kind_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[81] + return &file_otg_proto_enumTypes[88] } func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { @@ -4370,7 +4722,7 @@ func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Error_Kind_Enum.Descriptor instead. func (Error_Kind_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} } type ConfigUpdate_Choice_Enum int32 @@ -4403,11 +4755,11 @@ func (x ConfigUpdate_Choice_Enum) String() string { } func (ConfigUpdate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[82].Descriptor() + return file_otg_proto_enumTypes[89].Descriptor() } func (ConfigUpdate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[82] + return &file_otg_proto_enumTypes[89] } func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4416,7 +4768,7 @@ func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ConfigUpdate_Choice_Enum.Descriptor instead. func (ConfigUpdate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{222, 0, 0} } type FlowsUpdate_PropertyNames_Enum int32 @@ -4452,11 +4804,11 @@ func (x FlowsUpdate_PropertyNames_Enum) String() string { } func (FlowsUpdate_PropertyNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[83].Descriptor() + return file_otg_proto_enumTypes[90].Descriptor() } func (FlowsUpdate_PropertyNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[83] + return &file_otg_proto_enumTypes[90] } func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { @@ -4465,7 +4817,7 @@ func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowsUpdate_PropertyNames_Enum.Descriptor instead. func (FlowsUpdate_PropertyNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} } type ControlState_Choice_Enum int32 @@ -4504,11 +4856,11 @@ func (x ControlState_Choice_Enum) String() string { } func (ControlState_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[84].Descriptor() + return file_otg_proto_enumTypes[91].Descriptor() } func (ControlState_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[84] + return &file_otg_proto_enumTypes[91] } func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4517,7 +4869,7 @@ func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlState_Choice_Enum.Descriptor instead. func (ControlState_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{224, 0, 0} } type StatePort_Choice_Enum int32 @@ -4553,11 +4905,11 @@ func (x StatePort_Choice_Enum) String() string { } func (StatePort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[85].Descriptor() + return file_otg_proto_enumTypes[92].Descriptor() } func (StatePort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[85] + return &file_otg_proto_enumTypes[92] } func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4566,7 +4918,7 @@ func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePort_Choice_Enum.Descriptor instead. func (StatePort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{225, 0, 0} } type StateTraffic_Choice_Enum int32 @@ -4599,11 +4951,11 @@ func (x StateTraffic_Choice_Enum) String() string { } func (StateTraffic_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[86].Descriptor() + return file_otg_proto_enumTypes[93].Descriptor() } func (StateTraffic_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[86] + return &file_otg_proto_enumTypes[93] } func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4612,7 +4964,7 @@ func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTraffic_Choice_Enum.Descriptor instead. func (StateTraffic_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{226, 0, 0} } type StateProtocol_Choice_Enum int32 @@ -4651,11 +5003,11 @@ func (x StateProtocol_Choice_Enum) String() string { } func (StateProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[87].Descriptor() + return file_otg_proto_enumTypes[94].Descriptor() } func (StateProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[87] + return &file_otg_proto_enumTypes[94] } func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4664,7 +5016,7 @@ func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocol_Choice_Enum.Descriptor instead. func (StateProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} } type StatePortLink_State_Enum int32 @@ -4700,11 +5052,11 @@ func (x StatePortLink_State_Enum) String() string { } func (StatePortLink_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[88].Descriptor() + return file_otg_proto_enumTypes[95].Descriptor() } func (StatePortLink_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[88] + return &file_otg_proto_enumTypes[95] } func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { @@ -4713,7 +5065,7 @@ func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortLink_State_Enum.Descriptor instead. func (StatePortLink_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} } type StatePortCapture_State_Enum int32 @@ -4749,11 +5101,11 @@ func (x StatePortCapture_State_Enum) String() string { } func (StatePortCapture_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[89].Descriptor() + return file_otg_proto_enumTypes[96].Descriptor() } func (StatePortCapture_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[89] + return &file_otg_proto_enumTypes[96] } func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { @@ -4762,7 +5114,7 @@ func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortCapture_State_Enum.Descriptor instead. func (StatePortCapture_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} } type StateTrafficFlowTransmit_State_Enum int32 @@ -4804,11 +5156,11 @@ func (x StateTrafficFlowTransmit_State_Enum) String() string { } func (StateTrafficFlowTransmit_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[90].Descriptor() + return file_otg_proto_enumTypes[97].Descriptor() } func (StateTrafficFlowTransmit_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[90] + return &file_otg_proto_enumTypes[97] } func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { @@ -4817,7 +5169,7 @@ func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTrafficFlowTransmit_State_Enum.Descriptor instead. func (StateTrafficFlowTransmit_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{230, 0, 0} } type StateProtocolAll_State_Enum int32 @@ -4853,11 +5205,11 @@ func (x StateProtocolAll_State_Enum) String() string { } func (StateProtocolAll_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[91].Descriptor() + return file_otg_proto_enumTypes[98].Descriptor() } func (StateProtocolAll_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[91] + return &file_otg_proto_enumTypes[98] } func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { @@ -4866,7 +5218,7 @@ func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolAll_State_Enum.Descriptor instead. func (StateProtocolAll_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{231, 0, 0} } type StateProtocolRoute_State_Enum int32 @@ -4902,11 +5254,11 @@ func (x StateProtocolRoute_State_Enum) String() string { } func (StateProtocolRoute_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[92].Descriptor() + return file_otg_proto_enumTypes[99].Descriptor() } func (StateProtocolRoute_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[92] + return &file_otg_proto_enumTypes[99] } func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { @@ -4915,7 +5267,7 @@ func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolRoute_State_Enum.Descriptor instead. func (StateProtocolRoute_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{232, 0, 0} } type StateProtocolLacp_Choice_Enum int32 @@ -4948,11 +5300,11 @@ func (x StateProtocolLacp_Choice_Enum) String() string { } func (StateProtocolLacp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[93].Descriptor() + return file_otg_proto_enumTypes[100].Descriptor() } func (StateProtocolLacp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[93] + return &file_otg_proto_enumTypes[100] } func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4961,7 +5313,7 @@ func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacp_Choice_Enum.Descriptor instead. func (StateProtocolLacp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} } type StateProtocolLacpAdmin_State_Enum int32 @@ -4997,11 +5349,11 @@ func (x StateProtocolLacpAdmin_State_Enum) String() string { } func (StateProtocolLacpAdmin_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[94].Descriptor() + return file_otg_proto_enumTypes[101].Descriptor() } func (StateProtocolLacpAdmin_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[94] + return &file_otg_proto_enumTypes[101] } func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { @@ -5010,7 +5362,7 @@ func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacpAdmin_State_Enum.Descriptor instead. func (StateProtocolLacpAdmin_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} } type ControlAction_Choice_Enum int32 @@ -5043,11 +5395,11 @@ func (x ControlAction_Choice_Enum) String() string { } func (ControlAction_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[95].Descriptor() + return file_otg_proto_enumTypes[102].Descriptor() } func (ControlAction_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[95] + return &file_otg_proto_enumTypes[102] } func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5056,7 +5408,7 @@ func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlAction_Choice_Enum.Descriptor instead. func (ControlAction_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} } type ActionResponse_Choice_Enum int32 @@ -5089,11 +5441,11 @@ func (x ActionResponse_Choice_Enum) String() string { } func (ActionResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[96].Descriptor() + return file_otg_proto_enumTypes[103].Descriptor() } func (ActionResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[96] + return &file_otg_proto_enumTypes[103] } func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5102,7 +5454,7 @@ func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponse_Choice_Enum.Descriptor instead. func (ActionResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} } type ActionProtocol_Choice_Enum int32 @@ -5141,11 +5493,11 @@ func (x ActionProtocol_Choice_Enum) String() string { } func (ActionProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[97].Descriptor() + return file_otg_proto_enumTypes[104].Descriptor() } func (ActionProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[97] + return &file_otg_proto_enumTypes[104] } func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5154,7 +5506,7 @@ func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocol_Choice_Enum.Descriptor instead. func (ActionProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} } type ActionResponseProtocol_Choice_Enum int32 @@ -5190,11 +5542,11 @@ func (x ActionResponseProtocol_Choice_Enum) String() string { } func (ActionResponseProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[98].Descriptor() + return file_otg_proto_enumTypes[105].Descriptor() } func (ActionResponseProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[98] + return &file_otg_proto_enumTypes[105] } func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5203,7 +5555,7 @@ func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponseProtocol_Choice_Enum.Descriptor instead. func (ActionResponseProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} } type ActionProtocolIpv4_Choice_Enum int32 @@ -5236,11 +5588,11 @@ func (x ActionProtocolIpv4_Choice_Enum) String() string { } func (ActionProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[99].Descriptor() + return file_otg_proto_enumTypes[106].Descriptor() } func (ActionProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[99] + return &file_otg_proto_enumTypes[106] } func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5249,7 +5601,7 @@ func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} } type ActionResponseProtocolIpv4_Choice_Enum int32 @@ -5282,11 +5634,11 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) String() string { } func (ActionResponseProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[100].Descriptor() + return file_otg_proto_enumTypes[107].Descriptor() } func (ActionResponseProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[100] + return &file_otg_proto_enumTypes[107] } func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5295,7 +5647,7 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} } type ActionResponseProtocolIpv4PingResponse_Result_Enum int32 @@ -5331,11 +5683,11 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[101].Descriptor() + return file_otg_proto_enumTypes[108].Descriptor() } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[101] + return &file_otg_proto_enumTypes[108] } func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -5344,7 +5696,7 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv4PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{245, 0, 0} } type ActionProtocolIpv6_Choice_Enum int32 @@ -5377,11 +5729,11 @@ func (x ActionProtocolIpv6_Choice_Enum) String() string { } func (ActionProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[102].Descriptor() + return file_otg_proto_enumTypes[109].Descriptor() } func (ActionProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[102] + return &file_otg_proto_enumTypes[109] } func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5390,7 +5742,7 @@ func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{246, 0, 0} } type ActionResponseProtocolIpv6_Choice_Enum int32 @@ -5423,11 +5775,11 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) String() string { } func (ActionResponseProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[103].Descriptor() + return file_otg_proto_enumTypes[110].Descriptor() } func (ActionResponseProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[103] + return &file_otg_proto_enumTypes[110] } func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5436,7 +5788,7 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} } type ActionResponseProtocolIpv6PingResponse_Result_Enum int32 @@ -5472,11 +5824,11 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[104].Descriptor() + return file_otg_proto_enumTypes[111].Descriptor() } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[104] + return &file_otg_proto_enumTypes[111] } func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -5485,7 +5837,7 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv6PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{251, 0, 0} } type ActionProtocolBgp_Choice_Enum int32 @@ -5521,11 +5873,11 @@ func (x ActionProtocolBgp_Choice_Enum) String() string { } func (ActionProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[105].Descriptor() + return file_otg_proto_enumTypes[112].Descriptor() } func (ActionProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[105] + return &file_otg_proto_enumTypes[112] } func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5534,7 +5886,7 @@ func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolBgp_Choice_Enum.Descriptor instead. func (ActionProtocolBgp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{252, 0, 0} } type ActionProtocolBgpNotification_Choice_Enum int32 @@ -5585,11 +5937,11 @@ func (x ActionProtocolBgpNotification_Choice_Enum) String() string { } func (ActionProtocolBgpNotification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[106].Descriptor() + return file_otg_proto_enumTypes[113].Descriptor() } func (ActionProtocolBgpNotification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[106] + return &file_otg_proto_enumTypes[113] } func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5598,7 +5950,7 @@ func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use ActionProtocolBgpNotification_Choice_Enum.Descriptor instead. func (ActionProtocolBgpNotification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} } type MetricsRequest_Choice_Enum int32 @@ -5655,11 +6007,11 @@ func (x MetricsRequest_Choice_Enum) String() string { } func (MetricsRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[107].Descriptor() + return file_otg_proto_enumTypes[114].Descriptor() } func (MetricsRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[107] + return &file_otg_proto_enumTypes[114] } func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5668,7 +6020,7 @@ func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsRequest_Choice_Enum.Descriptor instead. func (MetricsRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{255, 0, 0} } type MetricsResponse_Choice_Enum int32 @@ -5725,11 +6077,11 @@ func (x MetricsResponse_Choice_Enum) String() string { } func (MetricsResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[108].Descriptor() + return file_otg_proto_enumTypes[115].Descriptor() } func (MetricsResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[108] + return &file_otg_proto_enumTypes[115] } func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5738,7 +6090,7 @@ func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsResponse_Choice_Enum.Descriptor instead. func (MetricsResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} } type PortMetricsRequest_ColumnNames_Enum int32 @@ -5804,11 +6156,11 @@ func (x PortMetricsRequest_ColumnNames_Enum) String() string { } func (PortMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[109].Descriptor() + return file_otg_proto_enumTypes[116].Descriptor() } func (PortMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[109] + return &file_otg_proto_enumTypes[116] } func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -5817,7 +6169,7 @@ func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetricsRequest_ColumnNames_Enum.Descriptor instead. func (PortMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{257, 0, 0} } type PortMetric_Link_Enum int32 @@ -5853,11 +6205,11 @@ func (x PortMetric_Link_Enum) String() string { } func (PortMetric_Link_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[110].Descriptor() + return file_otg_proto_enumTypes[117].Descriptor() } func (PortMetric_Link_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[110] + return &file_otg_proto_enumTypes[117] } func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { @@ -5866,7 +6218,7 @@ func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Link_Enum.Descriptor instead. func (PortMetric_Link_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 0, 0} } type PortMetric_Capture_Enum int32 @@ -5902,11 +6254,11 @@ func (x PortMetric_Capture_Enum) String() string { } func (PortMetric_Capture_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[111].Descriptor() + return file_otg_proto_enumTypes[118].Descriptor() } func (PortMetric_Capture_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[111] + return &file_otg_proto_enumTypes[118] } func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { @@ -5915,7 +6267,7 @@ func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Capture_Enum.Descriptor instead. func (PortMetric_Capture_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 1, 0} } type PortMetric_Transmit_Enum int32 @@ -5951,11 +6303,11 @@ func (x PortMetric_Transmit_Enum) String() string { } func (PortMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[112].Descriptor() + return file_otg_proto_enumTypes[119].Descriptor() } func (PortMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[112] + return &file_otg_proto_enumTypes[119] } func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -5964,7 +6316,7 @@ func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Transmit_Enum.Descriptor instead. func (PortMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 2, 0} } type FlowMetricsRequest_MetricNames_Enum int32 @@ -6015,11 +6367,11 @@ func (x FlowMetricsRequest_MetricNames_Enum) String() string { } func (FlowMetricsRequest_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[113].Descriptor() + return file_otg_proto_enumTypes[120].Descriptor() } func (FlowMetricsRequest_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[113] + return &file_otg_proto_enumTypes[120] } func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6028,7 +6380,7 @@ func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricsRequest_MetricNames_Enum.Descriptor instead. func (FlowMetricsRequest_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{259, 0, 0} } type FlowTaggedMetricsFilter_MetricNames_Enum int32 @@ -6076,11 +6428,11 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) String() string { } func (FlowTaggedMetricsFilter_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[114].Descriptor() + return file_otg_proto_enumTypes[121].Descriptor() } func (FlowTaggedMetricsFilter_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[114] + return &file_otg_proto_enumTypes[121] } func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6089,7 +6441,7 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumb // Deprecated: Use FlowTaggedMetricsFilter_MetricNames_Enum.Descriptor instead. func (FlowTaggedMetricsFilter_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} } type FlowMetric_Transmit_Enum int32 @@ -6128,11 +6480,11 @@ func (x FlowMetric_Transmit_Enum) String() string { } func (FlowMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[115].Descriptor() + return file_otg_proto_enumTypes[122].Descriptor() } func (FlowMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[115] + return &file_otg_proto_enumTypes[122] } func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -6141,7 +6493,7 @@ func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetric_Transmit_Enum.Descriptor instead. func (FlowMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} } type FlowMetricTagValue_Choice_Enum int32 @@ -6177,11 +6529,11 @@ func (x FlowMetricTagValue_Choice_Enum) String() string { } func (FlowMetricTagValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[116].Descriptor() + return file_otg_proto_enumTypes[123].Descriptor() } func (FlowMetricTagValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[116] + return &file_otg_proto_enumTypes[123] } func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6190,7 +6542,7 @@ func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricTagValue_Choice_Enum.Descriptor instead. func (FlowMetricTagValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} } type Bgpv4MetricsRequest_ColumnNames_Enum int32 @@ -6268,11 +6620,11 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv4MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[117].Descriptor() + return file_otg_proto_enumTypes[124].Descriptor() } func (Bgpv4MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[117] + return &file_otg_proto_enumTypes[124] } func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6281,7 +6633,7 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv4MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{268, 0, 0} } type Bgpv4Metric_SessionState_Enum int32 @@ -6317,11 +6669,11 @@ func (x Bgpv4Metric_SessionState_Enum) String() string { } func (Bgpv4Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[118].Descriptor() + return file_otg_proto_enumTypes[125].Descriptor() } func (Bgpv4Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[118] + return &file_otg_proto_enumTypes[125] } func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -6330,7 +6682,7 @@ func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_SessionState_Enum.Descriptor instead. func (Bgpv4Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{269, 0, 0} } type Bgpv4Metric_FsmState_Enum int32 @@ -6378,11 +6730,11 @@ func (x Bgpv4Metric_FsmState_Enum) String() string { } func (Bgpv4Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[119].Descriptor() + return file_otg_proto_enumTypes[126].Descriptor() } func (Bgpv4Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[119] + return &file_otg_proto_enumTypes[126] } func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -6391,7 +6743,7 @@ func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_FsmState_Enum.Descriptor instead. func (Bgpv4Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{269, 1, 0} } type Bgpv6MetricsRequest_ColumnNames_Enum int32 @@ -6469,11 +6821,11 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv6MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[120].Descriptor() + return file_otg_proto_enumTypes[127].Descriptor() } func (Bgpv6MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[120] + return &file_otg_proto_enumTypes[127] } func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6482,7 +6834,7 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv6MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{270, 0, 0} } type Bgpv6Metric_SessionState_Enum int32 @@ -6518,11 +6870,11 @@ func (x Bgpv6Metric_SessionState_Enum) String() string { } func (Bgpv6Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[121].Descriptor() + return file_otg_proto_enumTypes[128].Descriptor() } func (Bgpv6Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[121] + return &file_otg_proto_enumTypes[128] } func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -6531,7 +6883,7 @@ func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_SessionState_Enum.Descriptor instead. func (Bgpv6Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} } type Bgpv6Metric_FsmState_Enum int32 @@ -6579,11 +6931,11 @@ func (x Bgpv6Metric_FsmState_Enum) String() string { } func (Bgpv6Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[122].Descriptor() + return file_otg_proto_enumTypes[129].Descriptor() } func (Bgpv6Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[122] + return &file_otg_proto_enumTypes[129] } func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -6592,7 +6944,7 @@ func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_FsmState_Enum.Descriptor instead. func (Bgpv6Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{271, 1, 0} } type IsisMetricsRequest_ColumnNames_Enum int32 @@ -6700,11 +7052,11 @@ func (x IsisMetricsRequest_ColumnNames_Enum) String() string { } func (IsisMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[123].Descriptor() + return file_otg_proto_enumTypes[130].Descriptor() } func (IsisMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[123] + return &file_otg_proto_enumTypes[130] } func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6713,7 +7065,7 @@ func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisMetricsRequest_ColumnNames_Enum.Descriptor instead. func (IsisMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} } type LagMetricsRequest_ColumnNames_Enum int32 @@ -6773,11 +7125,11 @@ func (x LagMetricsRequest_ColumnNames_Enum) String() string { } func (LagMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[124].Descriptor() + return file_otg_proto_enumTypes[131].Descriptor() } func (LagMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[124] + return &file_otg_proto_enumTypes[131] } func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6786,7 +7138,7 @@ func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LagMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} } type LagMetric_OperStatus_Enum int32 @@ -6822,11 +7174,11 @@ func (x LagMetric_OperStatus_Enum) String() string { } func (LagMetric_OperStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[125].Descriptor() + return file_otg_proto_enumTypes[132].Descriptor() } func (LagMetric_OperStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[125] + return &file_otg_proto_enumTypes[132] } func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { @@ -6835,7 +7187,7 @@ func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetric_OperStatus_Enum.Descriptor instead. func (LagMetric_OperStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} } type LacpMetricsRequest_ColumnNames_Enum int32 @@ -6910,11 +7262,11 @@ func (x LacpMetricsRequest_ColumnNames_Enum) String() string { } func (LacpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[126].Descriptor() + return file_otg_proto_enumTypes[133].Descriptor() } func (LacpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[126] + return &file_otg_proto_enumTypes[133] } func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6923,7 +7275,7 @@ func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LacpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{276, 0, 0} } type LacpMetric_Activity_Enum int32 @@ -6959,11 +7311,11 @@ func (x LacpMetric_Activity_Enum) String() string { } func (LacpMetric_Activity_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[127].Descriptor() + return file_otg_proto_enumTypes[134].Descriptor() } func (LacpMetric_Activity_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[127] + return &file_otg_proto_enumTypes[134] } func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { @@ -6972,7 +7324,7 @@ func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Activity_Enum.Descriptor instead. func (LacpMetric_Activity_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} } type LacpMetric_Timeout_Enum int32 @@ -7008,11 +7360,11 @@ func (x LacpMetric_Timeout_Enum) String() string { } func (LacpMetric_Timeout_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[128].Descriptor() + return file_otg_proto_enumTypes[135].Descriptor() } func (LacpMetric_Timeout_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[128] + return &file_otg_proto_enumTypes[135] } func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { @@ -7021,7 +7373,7 @@ func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Timeout_Enum.Descriptor instead. func (LacpMetric_Timeout_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 1, 0} } type LacpMetric_Synchronization_Enum int32 @@ -7057,11 +7409,11 @@ func (x LacpMetric_Synchronization_Enum) String() string { } func (LacpMetric_Synchronization_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[129].Descriptor() + return file_otg_proto_enumTypes[136].Descriptor() } func (LacpMetric_Synchronization_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[129] + return &file_otg_proto_enumTypes[136] } func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { @@ -7070,7 +7422,7 @@ func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Synchronization_Enum.Descriptor instead. func (LacpMetric_Synchronization_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 2, 0} } type LldpMetricsRequest_ColumnNames_Enum int32 @@ -7118,11 +7470,11 @@ func (x LldpMetricsRequest_ColumnNames_Enum) String() string { } func (LldpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[130].Descriptor() + return file_otg_proto_enumTypes[137].Descriptor() } func (LldpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[130] + return &file_otg_proto_enumTypes[137] } func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7131,7 +7483,7 @@ func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LldpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} } type RsvpMetricsRequest_ColumnNames_Enum int32 @@ -7251,11 +7603,11 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) String() string { } func (RsvpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[131].Descriptor() + return file_otg_proto_enumTypes[138].Descriptor() } func (RsvpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[131] + return &file_otg_proto_enumTypes[138] } func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7264,7 +7616,7 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (RsvpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{280, 0, 0} } type StatesRequest_Choice_Enum int32 @@ -7312,11 +7664,11 @@ func (x StatesRequest_Choice_Enum) String() string { } func (StatesRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[132].Descriptor() + return file_otg_proto_enumTypes[139].Descriptor() } func (StatesRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[132] + return &file_otg_proto_enumTypes[139] } func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7325,7 +7677,7 @@ func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesRequest_Choice_Enum.Descriptor instead. func (StatesRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{282, 0, 0} } type StatesResponse_Choice_Enum int32 @@ -7373,11 +7725,11 @@ func (x StatesResponse_Choice_Enum) String() string { } func (StatesResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[133].Descriptor() + return file_otg_proto_enumTypes[140].Descriptor() } func (StatesResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[133] + return &file_otg_proto_enumTypes[140] } func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7386,7 +7738,7 @@ func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesResponse_Choice_Enum.Descriptor instead. func (StatesResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{283, 0, 0} } type BgpPrefixStateRequest_PrefixFilters_Enum int32 @@ -7422,11 +7774,11 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) String() string { } func (BgpPrefixStateRequest_PrefixFilters_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[134].Descriptor() + return file_otg_proto_enumTypes[141].Descriptor() } func (BgpPrefixStateRequest_PrefixFilters_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[134] + return &file_otg_proto_enumTypes[141] } func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumber { @@ -7435,7 +7787,7 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpPrefixStateRequest_PrefixFilters_Enum.Descriptor instead. func (BgpPrefixStateRequest_PrefixFilters_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{288, 0, 0} } type BgpPrefixIpv4UnicastFilter_Origin_Enum int32 @@ -7474,11 +7826,11 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[135].Descriptor() + return file_otg_proto_enumTypes[142].Descriptor() } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[135] + return &file_otg_proto_enumTypes[142] } func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7487,7 +7839,7 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{289, 0, 0} } type BgpPrefixIpv6UnicastFilter_Origin_Enum int32 @@ -7526,11 +7878,11 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[136].Descriptor() + return file_otg_proto_enumTypes[143].Descriptor() } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[136] + return &file_otg_proto_enumTypes[143] } func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7539,7 +7891,7 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{290, 0, 0} } type BgpPrefixIpv4UnicastState_Origin_Enum int32 @@ -7578,11 +7930,11 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[137].Descriptor() + return file_otg_proto_enumTypes[144].Descriptor() } func (BgpPrefixIpv4UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[137] + return &file_otg_proto_enumTypes[144] } func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7591,7 +7943,7 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} } type BgpPrefixIpv6UnicastState_Origin_Enum int32 @@ -7630,11 +7982,11 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[138].Descriptor() + return file_otg_proto_enumTypes[145].Descriptor() } func (BgpPrefixIpv6UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[138] + return &file_otg_proto_enumTypes[145] } func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7643,7 +7995,7 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{293, 0, 0} } type ResultBgpCommunity_Type_Enum int32 @@ -7691,11 +8043,11 @@ func (x ResultBgpCommunity_Type_Enum) String() string { } func (ResultBgpCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[139].Descriptor() + return file_otg_proto_enumTypes[146].Descriptor() } func (ResultBgpCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[139] + return &file_otg_proto_enumTypes[146] } func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -7704,7 +8056,7 @@ func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpCommunity_Type_Enum.Descriptor instead. func (ResultBgpCommunity_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{294, 0, 0} } type ResultBgpAsPathSegment_Type_Enum int32 @@ -7746,11 +8098,11 @@ func (x ResultBgpAsPathSegment_Type_Enum) String() string { } func (ResultBgpAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[140].Descriptor() + return file_otg_proto_enumTypes[147].Descriptor() } func (ResultBgpAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[140] + return &file_otg_proto_enumTypes[147] } func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -7759,7 +8111,7 @@ func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpAsPathSegment_Type_Enum.Descriptor instead. func (ResultBgpAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{296, 0, 0} } type IsisLspState_PduType_Enum int32 @@ -7795,11 +8147,11 @@ func (x IsisLspState_PduType_Enum) String() string { } func (IsisLspState_PduType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[141].Descriptor() + return file_otg_proto_enumTypes[148].Descriptor() } func (IsisLspState_PduType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[141] + return &file_otg_proto_enumTypes[148] } func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { @@ -7808,7 +8160,7 @@ func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspState_PduType_Enum.Descriptor instead. func (IsisLspState_PduType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{299, 0, 0} } type IsisLspV4Prefix_RedistributionType_Enum int32 @@ -7844,11 +8196,11 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[142].Descriptor() + return file_otg_proto_enumTypes[149].Descriptor() } func (IsisLspV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[142] + return &file_otg_proto_enumTypes[149] } func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -7857,7 +8209,7 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 0, 0} } type IsisLspV4Prefix_OriginType_Enum int32 @@ -7893,11 +8245,11 @@ func (x IsisLspV4Prefix_OriginType_Enum) String() string { } func (IsisLspV4Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[143].Descriptor() + return file_otg_proto_enumTypes[150].Descriptor() } func (IsisLspV4Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[143] + return &file_otg_proto_enumTypes[150] } func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -7906,7 +8258,7 @@ func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV4Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV4Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 1, 0} } type IsisLspExtendedV4Prefix_RedistributionType_Enum int32 @@ -7942,11 +8294,11 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[144].Descriptor() + return file_otg_proto_enumTypes[151].Descriptor() } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[144] + return &file_otg_proto_enumTypes[151] } func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -7955,7 +8307,7 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.E // Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspExtendedV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{310, 0, 0} } type IsisLspV6Prefix_RedistributionType_Enum int32 @@ -7991,11 +8343,11 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) String() string { } func (IsisLspV6Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[145].Descriptor() + return file_otg_proto_enumTypes[152].Descriptor() } func (IsisLspV6Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[145] + return &file_otg_proto_enumTypes[152] } func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -8004,7 +8356,7 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV6Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV6Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} } type IsisLspV6Prefix_OriginType_Enum int32 @@ -8040,11 +8392,11 @@ func (x IsisLspV6Prefix_OriginType_Enum) String() string { } func (IsisLspV6Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[146].Descriptor() + return file_otg_proto_enumTypes[153].Descriptor() } func (IsisLspV6Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[146] + return &file_otg_proto_enumTypes[153] } func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -8053,7 +8405,7 @@ func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV6Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV6Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{312, 1, 0} } type LldpNeighborsState_ChassisIdType_Enum int32 @@ -8104,11 +8456,11 @@ func (x LldpNeighborsState_ChassisIdType_Enum) String() string { } func (LldpNeighborsState_ChassisIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[147].Descriptor() + return file_otg_proto_enumTypes[154].Descriptor() } func (LldpNeighborsState_ChassisIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[147] + return &file_otg_proto_enumTypes[154] } func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber { @@ -8117,7 +8469,7 @@ func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber // Deprecated: Use LldpNeighborsState_ChassisIdType_Enum.Descriptor instead. func (LldpNeighborsState_ChassisIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{315, 0, 0} } type LldpNeighborsState_PortIdType_Enum int32 @@ -8168,11 +8520,11 @@ func (x LldpNeighborsState_PortIdType_Enum) String() string { } func (LldpNeighborsState_PortIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[148].Descriptor() + return file_otg_proto_enumTypes[155].Descriptor() } func (LldpNeighborsState_PortIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[148] + return &file_otg_proto_enumTypes[155] } func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { @@ -8181,7 +8533,7 @@ func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpNeighborsState_PortIdType_Enum.Descriptor instead. func (LldpNeighborsState_PortIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{315, 1, 0} } type LldpCapabilityState_CapabilityName_Enum int32 @@ -8244,11 +8596,11 @@ func (x LldpCapabilityState_CapabilityName_Enum) String() string { } func (LldpCapabilityState_CapabilityName_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[149].Descriptor() + return file_otg_proto_enumTypes[156].Descriptor() } func (LldpCapabilityState_CapabilityName_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[149] + return &file_otg_proto_enumTypes[156] } func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumber { @@ -8257,7 +8609,7 @@ func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use LldpCapabilityState_CapabilityName_Enum.Descriptor instead. func (LldpCapabilityState_CapabilityName_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{317, 0, 0} } type RsvpLspState_SessionStatus_Enum int32 @@ -8293,11 +8645,11 @@ func (x RsvpLspState_SessionStatus_Enum) String() string { } func (RsvpLspState_SessionStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[150].Descriptor() + return file_otg_proto_enumTypes[157].Descriptor() } func (RsvpLspState_SessionStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[150] + return &file_otg_proto_enumTypes[157] } func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { @@ -8306,7 +8658,7 @@ func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_SessionStatus_Enum.Descriptor instead. func (RsvpLspState_SessionStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{321, 0, 0} } type RsvpLspState_LastFlapReason_Enum int32 @@ -8345,11 +8697,11 @@ func (x RsvpLspState_LastFlapReason_Enum) String() string { } func (RsvpLspState_LastFlapReason_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[151].Descriptor() + return file_otg_proto_enumTypes[158].Descriptor() } func (RsvpLspState_LastFlapReason_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[151] + return &file_otg_proto_enumTypes[158] } func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { @@ -8358,7 +8710,7 @@ func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_LastFlapReason_Enum.Descriptor instead. func (RsvpLspState_LastFlapReason_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{321, 1, 0} } type RsvpLspIpv4Ero_Type_Enum int32 @@ -8406,11 +8758,11 @@ func (x RsvpLspIpv4Ero_Type_Enum) String() string { } func (RsvpLspIpv4Ero_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[152].Descriptor() + return file_otg_proto_enumTypes[159].Descriptor() } func (RsvpLspIpv4Ero_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[152] + return &file_otg_proto_enumTypes[159] } func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { @@ -8419,7 +8771,7 @@ func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspIpv4Ero_Type_Enum.Descriptor instead. func (RsvpLspIpv4Ero_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{323, 0, 0} } type PatternFlowEthernetDst_Choice_Enum int32 @@ -8464,11 +8816,11 @@ func (x PatternFlowEthernetDst_Choice_Enum) String() string { } func (PatternFlowEthernetDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[153].Descriptor() + return file_otg_proto_enumTypes[160].Descriptor() } func (PatternFlowEthernetDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[153] + return &file_otg_proto_enumTypes[160] } func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8477,7 +8829,7 @@ func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{327, 0, 0} } type PatternFlowEthernetSrc_Choice_Enum int32 @@ -8519,11 +8871,11 @@ func (x PatternFlowEthernetSrc_Choice_Enum) String() string { } func (PatternFlowEthernetSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[154].Descriptor() + return file_otg_proto_enumTypes[161].Descriptor() } func (PatternFlowEthernetSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[154] + return &file_otg_proto_enumTypes[161] } func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8532,7 +8884,7 @@ func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} } type PatternFlowEthernetEtherType_Choice_Enum int32 @@ -8577,11 +8929,11 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[155].Descriptor() + return file_otg_proto_enumTypes[162].Descriptor() } func (PatternFlowEthernetEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[155] + return &file_otg_proto_enumTypes[162] } func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8590,7 +8942,7 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{333, 0, 0} } type PatternFlowEthernetPfcQueue_Choice_Enum int32 @@ -8632,11 +8984,11 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) String() string { } func (PatternFlowEthernetPfcQueue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[156].Descriptor() + return file_otg_proto_enumTypes[163].Descriptor() } func (PatternFlowEthernetPfcQueue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[156] + return &file_otg_proto_enumTypes[163] } func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8645,7 +8997,7 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPfcQueue_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPfcQueue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} } type PatternFlowVlanPriority_Choice_Enum int32 @@ -8687,11 +9039,11 @@ func (x PatternFlowVlanPriority_Choice_Enum) String() string { } func (PatternFlowVlanPriority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[157].Descriptor() + return file_otg_proto_enumTypes[164].Descriptor() } func (PatternFlowVlanPriority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[157] + return &file_otg_proto_enumTypes[164] } func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8700,7 +9052,7 @@ func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanPriority_Choice_Enum.Descriptor instead. func (PatternFlowVlanPriority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{339, 0, 0} } type PatternFlowVlanCfi_Choice_Enum int32 @@ -8742,11 +9094,11 @@ func (x PatternFlowVlanCfi_Choice_Enum) String() string { } func (PatternFlowVlanCfi_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[158].Descriptor() + return file_otg_proto_enumTypes[165].Descriptor() } func (PatternFlowVlanCfi_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[158] + return &file_otg_proto_enumTypes[165] } func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8755,7 +9107,7 @@ func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanCfi_Choice_Enum.Descriptor instead. func (PatternFlowVlanCfi_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} } type PatternFlowVlanId_Choice_Enum int32 @@ -8797,11 +9149,11 @@ func (x PatternFlowVlanId_Choice_Enum) String() string { } func (PatternFlowVlanId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[159].Descriptor() + return file_otg_proto_enumTypes[166].Descriptor() } func (PatternFlowVlanId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[159] + return &file_otg_proto_enumTypes[166] } func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8810,7 +9162,7 @@ func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanId_Choice_Enum.Descriptor instead. func (PatternFlowVlanId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} } type PatternFlowVlanTpid_Choice_Enum int32 @@ -8852,11 +9204,11 @@ func (x PatternFlowVlanTpid_Choice_Enum) String() string { } func (PatternFlowVlanTpid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[160].Descriptor() + return file_otg_proto_enumTypes[167].Descriptor() } func (PatternFlowVlanTpid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[160] + return &file_otg_proto_enumTypes[167] } func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8865,7 +9217,7 @@ func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanTpid_Choice_Enum.Descriptor instead. func (PatternFlowVlanTpid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} } type PatternFlowVxlanFlags_Choice_Enum int32 @@ -8907,11 +9259,11 @@ func (x PatternFlowVxlanFlags_Choice_Enum) String() string { } func (PatternFlowVxlanFlags_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[161].Descriptor() + return file_otg_proto_enumTypes[168].Descriptor() } func (PatternFlowVxlanFlags_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[161] + return &file_otg_proto_enumTypes[168] } func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8920,7 +9272,7 @@ func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanFlags_Choice_Enum.Descriptor instead. func (PatternFlowVxlanFlags_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} } type PatternFlowVxlanReserved0_Choice_Enum int32 @@ -8962,11 +9314,11 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) String() string { } func (PatternFlowVxlanReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[162].Descriptor() + return file_otg_proto_enumTypes[169].Descriptor() } func (PatternFlowVxlanReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[162] + return &file_otg_proto_enumTypes[169] } func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8975,7 +9327,7 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved0_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} } type PatternFlowVxlanVni_Choice_Enum int32 @@ -9020,11 +9372,11 @@ func (x PatternFlowVxlanVni_Choice_Enum) String() string { } func (PatternFlowVxlanVni_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[163].Descriptor() + return file_otg_proto_enumTypes[170].Descriptor() } func (PatternFlowVxlanVni_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[163] + return &file_otg_proto_enumTypes[170] } func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9033,7 +9385,7 @@ func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanVni_Choice_Enum.Descriptor instead. func (PatternFlowVxlanVni_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} } type PatternFlowVxlanReserved1_Choice_Enum int32 @@ -9075,11 +9427,11 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) String() string { } func (PatternFlowVxlanReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[164].Descriptor() + return file_otg_proto_enumTypes[171].Descriptor() } func (PatternFlowVxlanReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[164] + return &file_otg_proto_enumTypes[171] } func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9088,7 +9440,7 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved1_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} } type PatternFlowIpv4Version_Choice_Enum int32 @@ -9130,11 +9482,11 @@ func (x PatternFlowIpv4Version_Choice_Enum) String() string { } func (PatternFlowIpv4Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[165].Descriptor() + return file_otg_proto_enumTypes[172].Descriptor() } func (PatternFlowIpv4Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[165] + return &file_otg_proto_enumTypes[172] } func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9143,7 +9495,7 @@ func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} } type PatternFlowIpv4HeaderLength_Choice_Enum int32 @@ -9188,11 +9540,11 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[166].Descriptor() + return file_otg_proto_enumTypes[173].Descriptor() } func (PatternFlowIpv4HeaderLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[166] + return &file_otg_proto_enumTypes[173] } func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9201,7 +9553,7 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4HeaderLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} } type PatternFlowIpv4TotalLength_Choice_Enum int32 @@ -9246,11 +9598,11 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) String() string { } func (PatternFlowIpv4TotalLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[167].Descriptor() + return file_otg_proto_enumTypes[174].Descriptor() } func (PatternFlowIpv4TotalLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[167] + return &file_otg_proto_enumTypes[174] } func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9259,7 +9611,7 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TotalLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TotalLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} } type PatternFlowIpv4Identification_Choice_Enum int32 @@ -9301,11 +9653,11 @@ func (x PatternFlowIpv4Identification_Choice_Enum) String() string { } func (PatternFlowIpv4Identification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[168].Descriptor() + return file_otg_proto_enumTypes[175].Descriptor() } func (PatternFlowIpv4Identification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[168] + return &file_otg_proto_enumTypes[175] } func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9314,7 +9666,7 @@ func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4Identification_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Identification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} } type PatternFlowIpv4Reserved_Choice_Enum int32 @@ -9356,11 +9708,11 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) String() string { } func (PatternFlowIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[169].Descriptor() + return file_otg_proto_enumTypes[176].Descriptor() } func (PatternFlowIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[169] + return &file_otg_proto_enumTypes[176] } func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9369,7 +9721,7 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Reserved_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{375, 0, 0} } type PatternFlowIpv4DontFragment_Choice_Enum int32 @@ -9411,11 +9763,11 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) String() string { } func (PatternFlowIpv4DontFragment_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[170].Descriptor() + return file_otg_proto_enumTypes[177].Descriptor() } func (PatternFlowIpv4DontFragment_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[170] + return &file_otg_proto_enumTypes[177] } func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9424,7 +9776,7 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4DontFragment_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DontFragment_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{378, 0, 0} } type PatternFlowIpv4MoreFragments_Choice_Enum int32 @@ -9466,11 +9818,11 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) String() string { } func (PatternFlowIpv4MoreFragments_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[171].Descriptor() + return file_otg_proto_enumTypes[178].Descriptor() } func (PatternFlowIpv4MoreFragments_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[171] + return &file_otg_proto_enumTypes[178] } func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9479,7 +9831,7 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4MoreFragments_Choice_Enum.Descriptor instead. func (PatternFlowIpv4MoreFragments_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{381, 0, 0} } type PatternFlowIpv4FragmentOffset_Choice_Enum int32 @@ -9521,11 +9873,11 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) String() string { } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[172].Descriptor() + return file_otg_proto_enumTypes[179].Descriptor() } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[172] + return &file_otg_proto_enumTypes[179] } func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9534,7 +9886,7 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4FragmentOffset_Choice_Enum.Descriptor instead. func (PatternFlowIpv4FragmentOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{384, 0, 0} } type PatternFlowIpv4TimeToLive_Choice_Enum int32 @@ -9576,11 +9928,11 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) String() string { } func (PatternFlowIpv4TimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[173].Descriptor() + return file_otg_proto_enumTypes[180].Descriptor() } func (PatternFlowIpv4TimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[173] + return &file_otg_proto_enumTypes[180] } func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9589,7 +9941,7 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{387, 0, 0} } type PatternFlowIpv4Protocol_Choice_Enum int32 @@ -9634,11 +9986,11 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) String() string { } func (PatternFlowIpv4Protocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[174].Descriptor() + return file_otg_proto_enumTypes[181].Descriptor() } func (PatternFlowIpv4Protocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[174] + return &file_otg_proto_enumTypes[181] } func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9647,7 +9999,7 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Protocol_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Protocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{390, 0, 0} } type PatternFlowIpv4HeaderChecksum_Choice_Enum int32 @@ -9683,11 +10035,11 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[175].Descriptor() + return file_otg_proto_enumTypes[182].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[175] + return &file_otg_proto_enumTypes[182] } func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9696,7 +10048,7 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{391, 0, 0} } type PatternFlowIpv4HeaderChecksum_Generated_Enum int32 @@ -9732,11 +10084,11 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[176].Descriptor() + return file_otg_proto_enumTypes[183].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[176] + return &file_otg_proto_enumTypes[183] } func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -9745,7 +10097,7 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{391, 1, 0} } type PatternFlowIpv4Src_Choice_Enum int32 @@ -9787,11 +10139,11 @@ func (x PatternFlowIpv4Src_Choice_Enum) String() string { } func (PatternFlowIpv4Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[177].Descriptor() + return file_otg_proto_enumTypes[184].Descriptor() } func (PatternFlowIpv4Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[177] + return &file_otg_proto_enumTypes[184] } func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9800,7 +10152,7 @@ func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{394, 0, 0} } type PatternFlowIpv4Dst_Choice_Enum int32 @@ -9842,11 +10194,11 @@ func (x PatternFlowIpv4Dst_Choice_Enum) String() string { } func (PatternFlowIpv4Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[178].Descriptor() + return file_otg_proto_enumTypes[185].Descriptor() } func (PatternFlowIpv4Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[178] + return &file_otg_proto_enumTypes[185] } func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9855,7 +10207,7 @@ func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{397, 0, 0} } type PatternFlowIpv4PriorityRaw_Choice_Enum int32 @@ -9897,11 +10249,11 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) String() string { } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[179].Descriptor() + return file_otg_proto_enumTypes[186].Descriptor() } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[179] + return &file_otg_proto_enumTypes[186] } func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9910,7 +10262,7 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4PriorityRaw_Choice_Enum.Descriptor instead. func (PatternFlowIpv4PriorityRaw_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} } type PatternFlowIpv4DscpPhb_Choice_Enum int32 @@ -9952,11 +10304,11 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) String() string { } func (PatternFlowIpv4DscpPhb_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[180].Descriptor() + return file_otg_proto_enumTypes[187].Descriptor() } func (PatternFlowIpv4DscpPhb_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[180] + return &file_otg_proto_enumTypes[187] } func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9965,7 +10317,7 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpPhb_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpPhb_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} } type PatternFlowIpv4DscpEcn_Choice_Enum int32 @@ -10007,11 +10359,11 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) String() string { } func (PatternFlowIpv4DscpEcn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[181].Descriptor() + return file_otg_proto_enumTypes[188].Descriptor() } func (PatternFlowIpv4DscpEcn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[181] + return &file_otg_proto_enumTypes[188] } func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10020,7 +10372,7 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpEcn_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpEcn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} } type PatternFlowIpv4TosPrecedence_Choice_Enum int32 @@ -10062,11 +10414,11 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) String() string { } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[182].Descriptor() + return file_otg_proto_enumTypes[189].Descriptor() } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[182] + return &file_otg_proto_enumTypes[189] } func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10075,7 +10427,7 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosPrecedence_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosPrecedence_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} } type PatternFlowIpv4TosDelay_Choice_Enum int32 @@ -10117,11 +10469,11 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) String() string { } func (PatternFlowIpv4TosDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[183].Descriptor() + return file_otg_proto_enumTypes[190].Descriptor() } func (PatternFlowIpv4TosDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[183] + return &file_otg_proto_enumTypes[190] } func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10130,7 +10482,7 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosDelay_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} } type PatternFlowIpv4TosThroughput_Choice_Enum int32 @@ -10172,11 +10524,11 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) String() string { } func (PatternFlowIpv4TosThroughput_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[184].Descriptor() + return file_otg_proto_enumTypes[191].Descriptor() } func (PatternFlowIpv4TosThroughput_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[184] + return &file_otg_proto_enumTypes[191] } func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10185,7 +10537,7 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosThroughput_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosThroughput_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} } type PatternFlowIpv4TosReliability_Choice_Enum int32 @@ -10227,11 +10579,11 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) String() string { } func (PatternFlowIpv4TosReliability_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[185].Descriptor() + return file_otg_proto_enumTypes[192].Descriptor() } func (PatternFlowIpv4TosReliability_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[185] + return &file_otg_proto_enumTypes[192] } func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10240,7 +10592,7 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4TosReliability_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosReliability_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} } type PatternFlowIpv4TosMonetary_Choice_Enum int32 @@ -10282,11 +10634,11 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) String() string { } func (PatternFlowIpv4TosMonetary_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[186].Descriptor() + return file_otg_proto_enumTypes[193].Descriptor() } func (PatternFlowIpv4TosMonetary_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[186] + return &file_otg_proto_enumTypes[193] } func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10295,7 +10647,7 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TosMonetary_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosMonetary_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} } type PatternFlowIpv4TosUnused_Choice_Enum int32 @@ -10337,11 +10689,11 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) String() string { } func (PatternFlowIpv4TosUnused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[187].Descriptor() + return file_otg_proto_enumTypes[194].Descriptor() } func (PatternFlowIpv4TosUnused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[187] + return &file_otg_proto_enumTypes[194] } func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10350,7 +10702,7 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosUnused_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosUnused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} } type PatternFlowIpv6Version_Choice_Enum int32 @@ -10392,11 +10744,11 @@ func (x PatternFlowIpv6Version_Choice_Enum) String() string { } func (PatternFlowIpv6Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[188].Descriptor() + return file_otg_proto_enumTypes[195].Descriptor() } func (PatternFlowIpv6Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[188] + return &file_otg_proto_enumTypes[195] } func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10405,7 +10757,7 @@ func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} } type PatternFlowIpv6TrafficClass_Choice_Enum int32 @@ -10447,11 +10799,11 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) String() string { } func (PatternFlowIpv6TrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[189].Descriptor() + return file_otg_proto_enumTypes[196].Descriptor() } func (PatternFlowIpv6TrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[189] + return &file_otg_proto_enumTypes[196] } func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10460,7 +10812,7 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv6TrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowIpv6TrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} } type PatternFlowIpv6FlowLabel_Choice_Enum int32 @@ -10502,11 +10854,11 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) String() string { } func (PatternFlowIpv6FlowLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[190].Descriptor() + return file_otg_proto_enumTypes[197].Descriptor() } func (PatternFlowIpv6FlowLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[190] + return &file_otg_proto_enumTypes[197] } func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10515,7 +10867,7 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6FlowLabel_Choice_Enum.Descriptor instead. func (PatternFlowIpv6FlowLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} } type PatternFlowIpv6PayloadLength_Choice_Enum int32 @@ -10560,11 +10912,11 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) String() string { } func (PatternFlowIpv6PayloadLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[191].Descriptor() + return file_otg_proto_enumTypes[198].Descriptor() } func (PatternFlowIpv6PayloadLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[191] + return &file_otg_proto_enumTypes[198] } func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10573,7 +10925,7 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv6PayloadLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv6PayloadLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} } type PatternFlowIpv6NextHeader_Choice_Enum int32 @@ -10618,11 +10970,11 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) String() string { } func (PatternFlowIpv6NextHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[192].Descriptor() + return file_otg_proto_enumTypes[199].Descriptor() } func (PatternFlowIpv6NextHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[192] + return &file_otg_proto_enumTypes[199] } func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10631,7 +10983,7 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv6NextHeader_Choice_Enum.Descriptor instead. func (PatternFlowIpv6NextHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} } type PatternFlowIpv6HopLimit_Choice_Enum int32 @@ -10673,11 +11025,11 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) String() string { } func (PatternFlowIpv6HopLimit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[193].Descriptor() + return file_otg_proto_enumTypes[200].Descriptor() } func (PatternFlowIpv6HopLimit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[193] + return &file_otg_proto_enumTypes[200] } func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10686,7 +11038,7 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6HopLimit_Choice_Enum.Descriptor instead. func (PatternFlowIpv6HopLimit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} } type PatternFlowIpv6Src_Choice_Enum int32 @@ -10728,11 +11080,11 @@ func (x PatternFlowIpv6Src_Choice_Enum) String() string { } func (PatternFlowIpv6Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[194].Descriptor() + return file_otg_proto_enumTypes[201].Descriptor() } func (PatternFlowIpv6Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[194] + return &file_otg_proto_enumTypes[201] } func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10741,7 +11093,7 @@ func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} } type PatternFlowIpv6Dst_Choice_Enum int32 @@ -10783,11 +11135,11 @@ func (x PatternFlowIpv6Dst_Choice_Enum) String() string { } func (PatternFlowIpv6Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[195].Descriptor() + return file_otg_proto_enumTypes[202].Descriptor() } func (PatternFlowIpv6Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[195] + return &file_otg_proto_enumTypes[202] } func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10796,7 +11148,7 @@ func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} } type PatternFlowPfcPauseDst_Choice_Enum int32 @@ -10838,11 +11190,11 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) String() string { } func (PatternFlowPfcPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[196].Descriptor() + return file_otg_proto_enumTypes[203].Descriptor() } func (PatternFlowPfcPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[196] + return &file_otg_proto_enumTypes[203] } func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10851,7 +11203,7 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} } type PatternFlowPfcPauseSrc_Choice_Enum int32 @@ -10893,11 +11245,11 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) String() string { } func (PatternFlowPfcPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[197].Descriptor() + return file_otg_proto_enumTypes[204].Descriptor() } func (PatternFlowPfcPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[197] + return &file_otg_proto_enumTypes[204] } func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10906,7 +11258,7 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} } type PatternFlowPfcPauseEtherType_Choice_Enum int32 @@ -10948,11 +11300,11 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) String() string { } func (PatternFlowPfcPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[198].Descriptor() + return file_otg_proto_enumTypes[205].Descriptor() } func (PatternFlowPfcPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[198] + return &file_otg_proto_enumTypes[205] } func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10961,7 +11313,7 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowPfcPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} } type PatternFlowPfcPauseControlOpCode_Choice_Enum int32 @@ -11003,11 +11355,11 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[199].Descriptor() + return file_otg_proto_enumTypes[206].Descriptor() } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[199] + return &file_otg_proto_enumTypes[206] } func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11016,7 +11368,7 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} } type PatternFlowPfcPauseClassEnableVector_Choice_Enum int32 @@ -11058,11 +11410,11 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) String() string { } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[200].Descriptor() + return file_otg_proto_enumTypes[207].Descriptor() } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[200] + return &file_otg_proto_enumTypes[207] } func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11071,7 +11423,7 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect. // Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} } type PatternFlowPfcPausePauseClass0_Choice_Enum int32 @@ -11113,11 +11465,11 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[201].Descriptor() + return file_otg_proto_enumTypes[208].Descriptor() } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[201] + return &file_otg_proto_enumTypes[208] } func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11126,7 +11478,7 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass0_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} } type PatternFlowPfcPausePauseClass1_Choice_Enum int32 @@ -11168,11 +11520,11 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[202].Descriptor() + return file_otg_proto_enumTypes[209].Descriptor() } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[202] + return &file_otg_proto_enumTypes[209] } func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11181,7 +11533,7 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass1_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} } type PatternFlowPfcPausePauseClass2_Choice_Enum int32 @@ -11223,11 +11575,11 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[203].Descriptor() + return file_otg_proto_enumTypes[210].Descriptor() } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[203] + return &file_otg_proto_enumTypes[210] } func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11236,7 +11588,7 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass2_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} } type PatternFlowPfcPausePauseClass3_Choice_Enum int32 @@ -11278,11 +11630,11 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[204].Descriptor() + return file_otg_proto_enumTypes[211].Descriptor() } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[204] + return &file_otg_proto_enumTypes[211] } func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11291,7 +11643,7 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass3_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass3_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} } type PatternFlowPfcPausePauseClass4_Choice_Enum int32 @@ -11333,11 +11685,11 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[205].Descriptor() + return file_otg_proto_enumTypes[212].Descriptor() } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[205] + return &file_otg_proto_enumTypes[212] } func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11346,7 +11698,7 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass4_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} } type PatternFlowPfcPausePauseClass5_Choice_Enum int32 @@ -11388,11 +11740,11 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[206].Descriptor() + return file_otg_proto_enumTypes[213].Descriptor() } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[206] + return &file_otg_proto_enumTypes[213] } func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11401,7 +11753,7 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass5_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass5_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} } type PatternFlowPfcPausePauseClass6_Choice_Enum int32 @@ -11443,11 +11795,11 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[207].Descriptor() + return file_otg_proto_enumTypes[214].Descriptor() } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[207] + return &file_otg_proto_enumTypes[214] } func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11456,7 +11808,7 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass6_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} } type PatternFlowPfcPausePauseClass7_Choice_Enum int32 @@ -11498,11 +11850,11 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[208].Descriptor() + return file_otg_proto_enumTypes[215].Descriptor() } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[208] + return &file_otg_proto_enumTypes[215] } func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11511,7 +11863,7 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass7_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass7_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} } type PatternFlowEthernetPauseDst_Choice_Enum int32 @@ -11553,11 +11905,11 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) String() string { } func (PatternFlowEthernetPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[209].Descriptor() + return file_otg_proto_enumTypes[216].Descriptor() } func (PatternFlowEthernetPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[209] + return &file_otg_proto_enumTypes[216] } func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11566,7 +11918,7 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} } type PatternFlowEthernetPauseSrc_Choice_Enum int32 @@ -11608,11 +11960,11 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) String() string { } func (PatternFlowEthernetPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[210].Descriptor() + return file_otg_proto_enumTypes[217].Descriptor() } func (PatternFlowEthernetPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[210] + return &file_otg_proto_enumTypes[217] } func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11621,7 +11973,7 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} } type PatternFlowEthernetPauseEtherType_Choice_Enum int32 @@ -11663,11 +12015,11 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[211].Descriptor() + return file_otg_proto_enumTypes[218].Descriptor() } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[211] + return &file_otg_proto_enumTypes[218] } func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11676,7 +12028,7 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowEthernetPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} } type PatternFlowEthernetPauseControlOpCode_Choice_Enum int32 @@ -11718,11 +12070,11 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[212].Descriptor() + return file_otg_proto_enumTypes[219].Descriptor() } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[212] + return &file_otg_proto_enumTypes[219] } func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11731,7 +12083,7 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect // Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} } type PatternFlowEthernetPauseTime_Choice_Enum int32 @@ -11773,11 +12125,11 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) String() string { } func (PatternFlowEthernetPauseTime_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[213].Descriptor() + return file_otg_proto_enumTypes[220].Descriptor() } func (PatternFlowEthernetPauseTime_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[213] + return &file_otg_proto_enumTypes[220] } func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11786,7 +12138,7 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetPauseTime_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseTime_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} } type PatternFlowTcpSrcPort_Choice_Enum int32 @@ -11828,11 +12180,11 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) String() string { } func (PatternFlowTcpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[214].Descriptor() + return file_otg_proto_enumTypes[221].Descriptor() } func (PatternFlowTcpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[214] + return &file_otg_proto_enumTypes[221] } func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11841,7 +12193,7 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} } type PatternFlowTcpDstPort_Choice_Enum int32 @@ -11883,11 +12235,11 @@ func (x PatternFlowTcpDstPort_Choice_Enum) String() string { } func (PatternFlowTcpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[215].Descriptor() + return file_otg_proto_enumTypes[222].Descriptor() } func (PatternFlowTcpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[215] + return &file_otg_proto_enumTypes[222] } func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11896,7 +12248,7 @@ func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} } type PatternFlowTcpSeqNum_Choice_Enum int32 @@ -11938,11 +12290,11 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) String() string { } func (PatternFlowTcpSeqNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[216].Descriptor() + return file_otg_proto_enumTypes[223].Descriptor() } func (PatternFlowTcpSeqNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[216] + return &file_otg_proto_enumTypes[223] } func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11951,7 +12303,7 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSeqNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpSeqNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} } type PatternFlowTcpAckNum_Choice_Enum int32 @@ -11993,11 +12345,11 @@ func (x PatternFlowTcpAckNum_Choice_Enum) String() string { } func (PatternFlowTcpAckNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[217].Descriptor() + return file_otg_proto_enumTypes[224].Descriptor() } func (PatternFlowTcpAckNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[217] + return &file_otg_proto_enumTypes[224] } func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12006,7 +12358,7 @@ func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpAckNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpAckNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} } type PatternFlowTcpDataOffset_Choice_Enum int32 @@ -12048,11 +12400,11 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) String() string { } func (PatternFlowTcpDataOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[218].Descriptor() + return file_otg_proto_enumTypes[225].Descriptor() } func (PatternFlowTcpDataOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[218] + return &file_otg_proto_enumTypes[225] } func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12061,7 +12413,7 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDataOffset_Choice_Enum.Descriptor instead. func (PatternFlowTcpDataOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} } type PatternFlowTcpEcnNs_Choice_Enum int32 @@ -12103,11 +12455,11 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) String() string { } func (PatternFlowTcpEcnNs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[219].Descriptor() + return file_otg_proto_enumTypes[226].Descriptor() } func (PatternFlowTcpEcnNs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[219] + return &file_otg_proto_enumTypes[226] } func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12116,7 +12468,7 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnNs_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnNs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} } type PatternFlowTcpEcnCwr_Choice_Enum int32 @@ -12158,11 +12510,11 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) String() string { } func (PatternFlowTcpEcnCwr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[220].Descriptor() + return file_otg_proto_enumTypes[227].Descriptor() } func (PatternFlowTcpEcnCwr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[220] + return &file_otg_proto_enumTypes[227] } func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12171,7 +12523,7 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnCwr_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnCwr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} } type PatternFlowTcpEcnEcho_Choice_Enum int32 @@ -12213,11 +12565,11 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) String() string { } func (PatternFlowTcpEcnEcho_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[221].Descriptor() + return file_otg_proto_enumTypes[228].Descriptor() } func (PatternFlowTcpEcnEcho_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[221] + return &file_otg_proto_enumTypes[228] } func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12226,7 +12578,7 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnEcho_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnEcho_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} } type PatternFlowTcpCtlUrg_Choice_Enum int32 @@ -12268,11 +12620,11 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) String() string { } func (PatternFlowTcpCtlUrg_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[222].Descriptor() + return file_otg_proto_enumTypes[229].Descriptor() } func (PatternFlowTcpCtlUrg_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[222] + return &file_otg_proto_enumTypes[229] } func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12281,7 +12633,7 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlUrg_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlUrg_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} } type PatternFlowTcpCtlAck_Choice_Enum int32 @@ -12323,11 +12675,11 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) String() string { } func (PatternFlowTcpCtlAck_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[223].Descriptor() + return file_otg_proto_enumTypes[230].Descriptor() } func (PatternFlowTcpCtlAck_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[223] + return &file_otg_proto_enumTypes[230] } func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12336,7 +12688,7 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlAck_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlAck_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} } type PatternFlowTcpCtlPsh_Choice_Enum int32 @@ -12378,11 +12730,11 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) String() string { } func (PatternFlowTcpCtlPsh_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[224].Descriptor() + return file_otg_proto_enumTypes[231].Descriptor() } func (PatternFlowTcpCtlPsh_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[224] + return &file_otg_proto_enumTypes[231] } func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12391,7 +12743,7 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlPsh_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlPsh_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} } type PatternFlowTcpCtlRst_Choice_Enum int32 @@ -12433,11 +12785,11 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) String() string { } func (PatternFlowTcpCtlRst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[225].Descriptor() + return file_otg_proto_enumTypes[232].Descriptor() } func (PatternFlowTcpCtlRst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[225] + return &file_otg_proto_enumTypes[232] } func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12446,7 +12798,7 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlRst_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlRst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} } type PatternFlowTcpCtlSyn_Choice_Enum int32 @@ -12488,11 +12840,11 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) String() string { } func (PatternFlowTcpCtlSyn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[226].Descriptor() + return file_otg_proto_enumTypes[233].Descriptor() } func (PatternFlowTcpCtlSyn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[226] + return &file_otg_proto_enumTypes[233] } func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12501,7 +12853,7 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlSyn_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlSyn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{541, 0, 0} } type PatternFlowTcpCtlFin_Choice_Enum int32 @@ -12543,11 +12895,11 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) String() string { } func (PatternFlowTcpCtlFin_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[227].Descriptor() + return file_otg_proto_enumTypes[234].Descriptor() } func (PatternFlowTcpCtlFin_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[227] + return &file_otg_proto_enumTypes[234] } func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12556,7 +12908,7 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlFin_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlFin_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{544, 0, 0} } type PatternFlowTcpWindow_Choice_Enum int32 @@ -12598,11 +12950,11 @@ func (x PatternFlowTcpWindow_Choice_Enum) String() string { } func (PatternFlowTcpWindow_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[228].Descriptor() + return file_otg_proto_enumTypes[235].Descriptor() } func (PatternFlowTcpWindow_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[228] + return &file_otg_proto_enumTypes[235] } func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12611,7 +12963,7 @@ func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpWindow_Choice_Enum.Descriptor instead. func (PatternFlowTcpWindow_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{547, 0, 0} } type PatternFlowUdpSrcPort_Choice_Enum int32 @@ -12653,11 +13005,11 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) String() string { } func (PatternFlowUdpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[229].Descriptor() + return file_otg_proto_enumTypes[236].Descriptor() } func (PatternFlowUdpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[229] + return &file_otg_proto_enumTypes[236] } func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12666,7 +13018,7 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{550, 0, 0} } type PatternFlowUdpDstPort_Choice_Enum int32 @@ -12708,11 +13060,11 @@ func (x PatternFlowUdpDstPort_Choice_Enum) String() string { } func (PatternFlowUdpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[230].Descriptor() + return file_otg_proto_enumTypes[237].Descriptor() } func (PatternFlowUdpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[230] + return &file_otg_proto_enumTypes[237] } func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12721,7 +13073,7 @@ func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{553, 0, 0} } type PatternFlowUdpLength_Choice_Enum int32 @@ -12763,11 +13115,11 @@ func (x PatternFlowUdpLength_Choice_Enum) String() string { } func (PatternFlowUdpLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[231].Descriptor() + return file_otg_proto_enumTypes[238].Descriptor() } func (PatternFlowUdpLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[231] + return &file_otg_proto_enumTypes[238] } func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12776,7 +13128,7 @@ func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpLength_Choice_Enum.Descriptor instead. func (PatternFlowUdpLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{556, 0, 0} } type PatternFlowUdpChecksum_Choice_Enum int32 @@ -12812,11 +13164,11 @@ func (x PatternFlowUdpChecksum_Choice_Enum) String() string { } func (PatternFlowUdpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[232].Descriptor() + return file_otg_proto_enumTypes[239].Descriptor() } func (PatternFlowUdpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[232] + return &file_otg_proto_enumTypes[239] } func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12825,7 +13177,7 @@ func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpChecksum_Choice_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{557, 0, 0} } type PatternFlowUdpChecksum_Generated_Enum int32 @@ -12861,11 +13213,11 @@ func (x PatternFlowUdpChecksum_Generated_Enum) String() string { } func (PatternFlowUdpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[233].Descriptor() + return file_otg_proto_enumTypes[240].Descriptor() } func (PatternFlowUdpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[233] + return &file_otg_proto_enumTypes[240] } func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -12874,7 +13226,7 @@ func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowUdpChecksum_Generated_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{557, 1, 0} } type PatternFlowGreChecksumPresent_Choice_Enum int32 @@ -12916,11 +13268,11 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) String() string { } func (PatternFlowGreChecksumPresent_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[234].Descriptor() + return file_otg_proto_enumTypes[241].Descriptor() } func (PatternFlowGreChecksumPresent_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[234] + return &file_otg_proto_enumTypes[241] } func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12929,7 +13281,7 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGreChecksumPresent_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksumPresent_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{560, 0, 0} } type PatternFlowGreReserved0_Choice_Enum int32 @@ -12971,11 +13323,11 @@ func (x PatternFlowGreReserved0_Choice_Enum) String() string { } func (PatternFlowGreReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[235].Descriptor() + return file_otg_proto_enumTypes[242].Descriptor() } func (PatternFlowGreReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[235] + return &file_otg_proto_enumTypes[242] } func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12984,7 +13336,7 @@ func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved0_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{563, 0, 0} } type PatternFlowGreVersion_Choice_Enum int32 @@ -13026,11 +13378,11 @@ func (x PatternFlowGreVersion_Choice_Enum) String() string { } func (PatternFlowGreVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[236].Descriptor() + return file_otg_proto_enumTypes[243].Descriptor() } func (PatternFlowGreVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[236] + return &file_otg_proto_enumTypes[243] } func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13039,7 +13391,7 @@ func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreVersion_Choice_Enum.Descriptor instead. func (PatternFlowGreVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{566, 0, 0} } type PatternFlowGreProtocol_Choice_Enum int32 @@ -13081,11 +13433,11 @@ func (x PatternFlowGreProtocol_Choice_Enum) String() string { } func (PatternFlowGreProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[237].Descriptor() + return file_otg_proto_enumTypes[244].Descriptor() } func (PatternFlowGreProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[237] + return &file_otg_proto_enumTypes[244] } func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13094,7 +13446,7 @@ func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreProtocol_Choice_Enum.Descriptor instead. func (PatternFlowGreProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{569, 0, 0} } type PatternFlowGreChecksum_Choice_Enum int32 @@ -13130,11 +13482,11 @@ func (x PatternFlowGreChecksum_Choice_Enum) String() string { } func (PatternFlowGreChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[238].Descriptor() + return file_otg_proto_enumTypes[245].Descriptor() } func (PatternFlowGreChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[238] + return &file_otg_proto_enumTypes[245] } func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13143,7 +13495,7 @@ func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreChecksum_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{570, 0, 0} } type PatternFlowGreChecksum_Generated_Enum int32 @@ -13179,11 +13531,11 @@ func (x PatternFlowGreChecksum_Generated_Enum) String() string { } func (PatternFlowGreChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[239].Descriptor() + return file_otg_proto_enumTypes[246].Descriptor() } func (PatternFlowGreChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[239] + return &file_otg_proto_enumTypes[246] } func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -13192,7 +13544,7 @@ func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGreChecksum_Generated_Enum.Descriptor instead. func (PatternFlowGreChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{570, 1, 0} } type PatternFlowGreReserved1_Choice_Enum int32 @@ -13234,11 +13586,11 @@ func (x PatternFlowGreReserved1_Choice_Enum) String() string { } func (PatternFlowGreReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[240].Descriptor() + return file_otg_proto_enumTypes[247].Descriptor() } func (PatternFlowGreReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[240] + return &file_otg_proto_enumTypes[247] } func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13247,7 +13599,7 @@ func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved1_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{573, 0, 0} } type PatternFlowGtpv1Version_Choice_Enum int32 @@ -13289,11 +13641,11 @@ func (x PatternFlowGtpv1Version_Choice_Enum) String() string { } func (PatternFlowGtpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[241].Descriptor() + return file_otg_proto_enumTypes[248].Descriptor() } func (PatternFlowGtpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[241] + return &file_otg_proto_enumTypes[248] } func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13302,7 +13654,7 @@ func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{576, 0, 0} } type PatternFlowGtpv1ProtocolType_Choice_Enum int32 @@ -13344,11 +13696,11 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) String() string { } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[242].Descriptor() + return file_otg_proto_enumTypes[249].Descriptor() } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[242] + return &file_otg_proto_enumTypes[249] } func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13357,7 +13709,7 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowGtpv1ProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1ProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{579, 0, 0} } type PatternFlowGtpv1Reserved_Choice_Enum int32 @@ -13399,11 +13751,11 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) String() string { } func (PatternFlowGtpv1Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[243].Descriptor() + return file_otg_proto_enumTypes[250].Descriptor() } func (PatternFlowGtpv1Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[243] + return &file_otg_proto_enumTypes[250] } func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13412,7 +13764,7 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Reserved_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{582, 0, 0} } type PatternFlowGtpv1EFlag_Choice_Enum int32 @@ -13454,11 +13806,11 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1EFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[244].Descriptor() + return file_otg_proto_enumTypes[251].Descriptor() } func (PatternFlowGtpv1EFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[244] + return &file_otg_proto_enumTypes[251] } func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13467,7 +13819,7 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1EFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1EFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{585, 0, 0} } type PatternFlowGtpv1SFlag_Choice_Enum int32 @@ -13509,11 +13861,11 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1SFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[245].Descriptor() + return file_otg_proto_enumTypes[252].Descriptor() } func (PatternFlowGtpv1SFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[245] + return &file_otg_proto_enumTypes[252] } func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13522,7 +13874,7 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1SFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{588, 0, 0} } type PatternFlowGtpv1PnFlag_Choice_Enum int32 @@ -13564,11 +13916,11 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1PnFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[246].Descriptor() + return file_otg_proto_enumTypes[253].Descriptor() } func (PatternFlowGtpv1PnFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[246] + return &file_otg_proto_enumTypes[253] } func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13577,7 +13929,7 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1PnFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1PnFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} } type PatternFlowGtpv1MessageType_Choice_Enum int32 @@ -13619,11 +13971,11 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[247].Descriptor() + return file_otg_proto_enumTypes[254].Descriptor() } func (PatternFlowGtpv1MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[247] + return &file_otg_proto_enumTypes[254] } func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13632,7 +13984,7 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv1MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} } type PatternFlowGtpv1MessageLength_Choice_Enum int32 @@ -13674,11 +14026,11 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[248].Descriptor() + return file_otg_proto_enumTypes[255].Descriptor() } func (PatternFlowGtpv1MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[248] + return &file_otg_proto_enumTypes[255] } func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13687,7 +14039,7 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} } type PatternFlowGtpv1Teid_Choice_Enum int32 @@ -13729,11 +14081,11 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) String() string { } func (PatternFlowGtpv1Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[249].Descriptor() + return file_otg_proto_enumTypes[256].Descriptor() } func (PatternFlowGtpv1Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[249] + return &file_otg_proto_enumTypes[256] } func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13742,7 +14094,7 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} } type PatternFlowGtpv1SquenceNumber_Choice_Enum int32 @@ -13784,11 +14136,11 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[250].Descriptor() + return file_otg_proto_enumTypes[257].Descriptor() } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[250] + return &file_otg_proto_enumTypes[257] } func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13797,7 +14149,7 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SquenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} } type PatternFlowGtpv1NPduNumber_Choice_Enum int32 @@ -13839,11 +14191,11 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[251].Descriptor() + return file_otg_proto_enumTypes[258].Descriptor() } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[251] + return &file_otg_proto_enumTypes[258] } func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13852,7 +14204,7 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGtpv1NPduNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NPduNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} } type PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum int32 @@ -13894,11 +14246,11 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) String() string { } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[252].Descriptor() + return file_otg_proto_enumTypes[259].Descriptor() } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[252] + return &file_otg_proto_enumTypes[259] } func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13907,7 +14259,7 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} } type PatternFlowGtpExtensionExtensionLength_Choice_Enum int32 @@ -13949,11 +14301,11 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) String() string { } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[253].Descriptor() + return file_otg_proto_enumTypes[260].Descriptor() } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[253] + return &file_otg_proto_enumTypes[260] } func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13962,7 +14314,7 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflec // Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} } type PatternFlowGtpExtensionContents_Choice_Enum int32 @@ -14004,11 +14356,11 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) String() string { } func (PatternFlowGtpExtensionContents_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[254].Descriptor() + return file_otg_proto_enumTypes[261].Descriptor() } func (PatternFlowGtpExtensionContents_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[254] + return &file_otg_proto_enumTypes[261] } func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14017,7 +14369,7 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowGtpExtensionContents_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionContents_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} } type PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum int32 @@ -14059,11 +14411,11 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) String() string } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[255].Descriptor() + return file_otg_proto_enumTypes[262].Descriptor() } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[255] + return &file_otg_proto_enumTypes[262] } func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14072,7 +14424,7 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protore // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} } type PatternFlowGtpv2Version_Choice_Enum int32 @@ -14114,11 +14466,11 @@ func (x PatternFlowGtpv2Version_Choice_Enum) String() string { } func (PatternFlowGtpv2Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[256].Descriptor() + return file_otg_proto_enumTypes[263].Descriptor() } func (PatternFlowGtpv2Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[256] + return &file_otg_proto_enumTypes[263] } func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14127,7 +14479,7 @@ func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} } type PatternFlowGtpv2PiggybackingFlag_Choice_Enum int32 @@ -14169,11 +14521,11 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[257].Descriptor() + return file_otg_proto_enumTypes[264].Descriptor() } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[257] + return &file_otg_proto_enumTypes[264] } func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14182,7 +14534,7 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} } type PatternFlowGtpv2TeidFlag_Choice_Enum int32 @@ -14224,11 +14576,11 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[258].Descriptor() + return file_otg_proto_enumTypes[265].Descriptor() } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[258] + return &file_otg_proto_enumTypes[265] } func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14237,7 +14589,7 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2TeidFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2TeidFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} } type PatternFlowGtpv2Spare1_Choice_Enum int32 @@ -14279,11 +14631,11 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[259].Descriptor() + return file_otg_proto_enumTypes[266].Descriptor() } func (PatternFlowGtpv2Spare1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[259] + return &file_otg_proto_enumTypes[266] } func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14292,7 +14644,7 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare1_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} } type PatternFlowGtpv2MessageType_Choice_Enum int32 @@ -14334,11 +14686,11 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[260].Descriptor() + return file_otg_proto_enumTypes[267].Descriptor() } func (PatternFlowGtpv2MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[260] + return &file_otg_proto_enumTypes[267] } func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14347,7 +14699,7 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv2MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} } type PatternFlowGtpv2MessageLength_Choice_Enum int32 @@ -14389,11 +14741,11 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[261].Descriptor() + return file_otg_proto_enumTypes[268].Descriptor() } func (PatternFlowGtpv2MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[261] + return &file_otg_proto_enumTypes[268] } func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14402,7 +14754,7 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv2MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} } type PatternFlowGtpv2Teid_Choice_Enum int32 @@ -14444,11 +14796,11 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) String() string { } func (PatternFlowGtpv2Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[262].Descriptor() + return file_otg_proto_enumTypes[269].Descriptor() } func (PatternFlowGtpv2Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[262] + return &file_otg_proto_enumTypes[269] } func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14457,7 +14809,7 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} } type PatternFlowGtpv2SequenceNumber_Choice_Enum int32 @@ -14499,11 +14851,11 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[263].Descriptor() + return file_otg_proto_enumTypes[270].Descriptor() } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[263] + return &file_otg_proto_enumTypes[270] } func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14512,7 +14864,7 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2SequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} } type PatternFlowGtpv2Spare2_Choice_Enum int32 @@ -14554,11 +14906,11 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[264].Descriptor() + return file_otg_proto_enumTypes[271].Descriptor() } func (PatternFlowGtpv2Spare2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[264] + return &file_otg_proto_enumTypes[271] } func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14567,7 +14919,7 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare2_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} } type PatternFlowArpHardwareType_Choice_Enum int32 @@ -14609,11 +14961,11 @@ func (x PatternFlowArpHardwareType_Choice_Enum) String() string { } func (PatternFlowArpHardwareType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[265].Descriptor() + return file_otg_proto_enumTypes[272].Descriptor() } func (PatternFlowArpHardwareType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[265] + return &file_otg_proto_enumTypes[272] } func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14622,7 +14974,7 @@ func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpHardwareType_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} } type PatternFlowArpProtocolType_Choice_Enum int32 @@ -14664,11 +15016,11 @@ func (x PatternFlowArpProtocolType_Choice_Enum) String() string { } func (PatternFlowArpProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[266].Descriptor() + return file_otg_proto_enumTypes[273].Descriptor() } func (PatternFlowArpProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[266] + return &file_otg_proto_enumTypes[273] } func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14677,7 +15029,7 @@ func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} } type PatternFlowArpHardwareLength_Choice_Enum int32 @@ -14719,11 +15071,11 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) String() string { } func (PatternFlowArpHardwareLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[267].Descriptor() + return file_otg_proto_enumTypes[274].Descriptor() } func (PatternFlowArpHardwareLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[267] + return &file_otg_proto_enumTypes[274] } func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14732,7 +15084,7 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpHardwareLength_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} } type PatternFlowArpProtocolLength_Choice_Enum int32 @@ -14774,11 +15126,11 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) String() string { } func (PatternFlowArpProtocolLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[268].Descriptor() + return file_otg_proto_enumTypes[275].Descriptor() } func (PatternFlowArpProtocolLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[268] + return &file_otg_proto_enumTypes[275] } func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14787,7 +15139,7 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpProtocolLength_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} } type PatternFlowArpOperation_Choice_Enum int32 @@ -14829,11 +15181,11 @@ func (x PatternFlowArpOperation_Choice_Enum) String() string { } func (PatternFlowArpOperation_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[269].Descriptor() + return file_otg_proto_enumTypes[276].Descriptor() } func (PatternFlowArpOperation_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[269] + return &file_otg_proto_enumTypes[276] } func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14842,7 +15194,7 @@ func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowArpOperation_Choice_Enum.Descriptor instead. func (PatternFlowArpOperation_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} } type PatternFlowArpSenderHardwareAddr_Choice_Enum int32 @@ -14884,11 +15236,11 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[270].Descriptor() + return file_otg_proto_enumTypes[277].Descriptor() } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[270] + return &file_otg_proto_enumTypes[277] } func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14897,7 +15249,7 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{663, 0, 0} } type PatternFlowArpSenderProtocolAddr_Choice_Enum int32 @@ -14939,11 +15291,11 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[271].Descriptor() + return file_otg_proto_enumTypes[278].Descriptor() } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[271] + return &file_otg_proto_enumTypes[278] } func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14952,7 +15304,7 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{666, 0, 0} } type PatternFlowArpTargetHardwareAddr_Choice_Enum int32 @@ -14994,11 +15346,11 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[272].Descriptor() + return file_otg_proto_enumTypes[279].Descriptor() } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[272] + return &file_otg_proto_enumTypes[279] } func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15007,7 +15359,7 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{669, 0, 0} } type PatternFlowArpTargetProtocolAddr_Choice_Enum int32 @@ -15049,11 +15401,11 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[273].Descriptor() + return file_otg_proto_enumTypes[280].Descriptor() } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[273] + return &file_otg_proto_enumTypes[280] } func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15062,7 +15414,7 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{672, 0, 0} } type PatternFlowIcmpEchoType_Choice_Enum int32 @@ -15104,11 +15456,11 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) String() string { } func (PatternFlowIcmpEchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[274].Descriptor() + return file_otg_proto_enumTypes[281].Descriptor() } func (PatternFlowIcmpEchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[274] + return &file_otg_proto_enumTypes[281] } func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15117,7 +15469,7 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{675, 0, 0} } type PatternFlowIcmpEchoCode_Choice_Enum int32 @@ -15159,11 +15511,11 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpEchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[275].Descriptor() + return file_otg_proto_enumTypes[282].Descriptor() } func (PatternFlowIcmpEchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[275] + return &file_otg_proto_enumTypes[282] } func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15172,7 +15524,7 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{678, 0, 0} } type PatternFlowIcmpEchoChecksum_Choice_Enum int32 @@ -15208,11 +15560,11 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[276].Descriptor() + return file_otg_proto_enumTypes[283].Descriptor() } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[276] + return &file_otg_proto_enumTypes[283] } func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15221,7 +15573,7 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIcmpEchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{679, 0, 0} } type PatternFlowIcmpEchoChecksum_Generated_Enum int32 @@ -15257,11 +15609,11 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[277].Descriptor() + return file_otg_proto_enumTypes[284].Descriptor() } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[277] + return &file_otg_proto_enumTypes[284] } func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15270,7 +15622,7 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowIcmpEchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{679, 1, 0} } type PatternFlowIcmpEchoIdentifier_Choice_Enum int32 @@ -15312,11 +15664,11 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[278].Descriptor() + return file_otg_proto_enumTypes[285].Descriptor() } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[278] + return &file_otg_proto_enumTypes[285] } func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15325,7 +15677,7 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{682, 0, 0} } type PatternFlowIcmpEchoSequenceNumber_Choice_Enum int32 @@ -15367,11 +15719,11 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[279].Descriptor() + return file_otg_proto_enumTypes[286].Descriptor() } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[279] + return &file_otg_proto_enumTypes[286] } func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15380,7 +15732,7 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{685, 0, 0} } type PatternFlowIcmpCommonChecksum_Choice_Enum int32 @@ -15416,11 +15768,11 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[280].Descriptor() + return file_otg_proto_enumTypes[287].Descriptor() } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[280] + return &file_otg_proto_enumTypes[287] } func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15429,7 +15781,7 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpCommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{686, 0, 0} } type PatternFlowIcmpCommonChecksum_Generated_Enum int32 @@ -15465,11 +15817,11 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[281].Descriptor() + return file_otg_proto_enumTypes[288].Descriptor() } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[281] + return &file_otg_proto_enumTypes[288] } func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15478,7 +15830,7 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpCommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{686, 1, 0} } type PatternFlowIcmpNextFieldsIdentifier_Choice_Enum int32 @@ -15520,11 +15872,11 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[282].Descriptor() + return file_otg_proto_enumTypes[289].Descriptor() } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[282] + return &file_otg_proto_enumTypes[289] } func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15533,7 +15885,7 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{689, 0, 0} } type PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum int32 @@ -15575,11 +15927,11 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[283].Descriptor() + return file_otg_proto_enumTypes[290].Descriptor() } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[283] + return &file_otg_proto_enumTypes[290] } func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15588,7 +15940,7 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{692, 0, 0} } type PatternFlowIcmpv6EchoType_Choice_Enum int32 @@ -15630,11 +15982,11 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[284].Descriptor() + return file_otg_proto_enumTypes[291].Descriptor() } func (PatternFlowIcmpv6EchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[284] + return &file_otg_proto_enumTypes[291] } func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15643,7 +15995,7 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{695, 0, 0} } type PatternFlowIcmpv6EchoCode_Choice_Enum int32 @@ -15685,11 +16037,11 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[285].Descriptor() + return file_otg_proto_enumTypes[292].Descriptor() } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[285] + return &file_otg_proto_enumTypes[292] } func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15698,7 +16050,7 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{698, 0, 0} } type PatternFlowIcmpv6EchoIdentifier_Choice_Enum int32 @@ -15740,11 +16092,11 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[286].Descriptor() + return file_otg_proto_enumTypes[293].Descriptor() } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[286] + return &file_otg_proto_enumTypes[293] } func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15753,7 +16105,7 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{701, 0, 0} } type PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum int32 @@ -15795,11 +16147,11 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[287].Descriptor() + return file_otg_proto_enumTypes[294].Descriptor() } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[287] + return &file_otg_proto_enumTypes[294] } func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15808,7 +16160,7 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{704, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Choice_Enum int32 @@ -15844,11 +16196,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[288].Descriptor() + return file_otg_proto_enumTypes[295].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[288] + return &file_otg_proto_enumTypes[295] } func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15857,7 +16209,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{705, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Generated_Enum int32 @@ -15893,11 +16245,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[289].Descriptor() + return file_otg_proto_enumTypes[296].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[289] + return &file_otg_proto_enumTypes[296] } func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15906,7 +16258,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{705, 1, 0} } type PatternFlowIcmpv6CommonChecksum_Choice_Enum int32 @@ -15942,11 +16294,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[290].Descriptor() + return file_otg_proto_enumTypes[297].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[290] + return &file_otg_proto_enumTypes[297] } func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15955,7 +16307,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{706, 0, 0} } type PatternFlowIcmpv6CommonChecksum_Generated_Enum int32 @@ -15991,11 +16343,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[291].Descriptor() + return file_otg_proto_enumTypes[298].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[291] + return &file_otg_proto_enumTypes[298] } func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16004,7 +16356,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.En // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{706, 1, 0} } type PatternFlowPppAddress_Choice_Enum int32 @@ -16046,11 +16398,11 @@ func (x PatternFlowPppAddress_Choice_Enum) String() string { } func (PatternFlowPppAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[292].Descriptor() + return file_otg_proto_enumTypes[299].Descriptor() } func (PatternFlowPppAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[292] + return &file_otg_proto_enumTypes[299] } func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16059,7 +16411,7 @@ func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppAddress_Choice_Enum.Descriptor instead. func (PatternFlowPppAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{709, 0, 0} } type PatternFlowPppControl_Choice_Enum int32 @@ -16101,11 +16453,11 @@ func (x PatternFlowPppControl_Choice_Enum) String() string { } func (PatternFlowPppControl_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[293].Descriptor() + return file_otg_proto_enumTypes[300].Descriptor() } func (PatternFlowPppControl_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[293] + return &file_otg_proto_enumTypes[300] } func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16114,7 +16466,7 @@ func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppControl_Choice_Enum.Descriptor instead. func (PatternFlowPppControl_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{712, 0, 0} } type PatternFlowPppProtocolType_Choice_Enum int32 @@ -16159,11 +16511,11 @@ func (x PatternFlowPppProtocolType_Choice_Enum) String() string { } func (PatternFlowPppProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[294].Descriptor() + return file_otg_proto_enumTypes[301].Descriptor() } func (PatternFlowPppProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[294] + return &file_otg_proto_enumTypes[301] } func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16172,7 +16524,7 @@ func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowPppProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowPppProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{715, 0, 0} } type PatternFlowIgmpv1Version_Choice_Enum int32 @@ -16214,11 +16566,11 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) String() string { } func (PatternFlowIgmpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[295].Descriptor() + return file_otg_proto_enumTypes[302].Descriptor() } func (PatternFlowIgmpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[295] + return &file_otg_proto_enumTypes[302] } func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16227,7 +16579,7 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{718, 0, 0} } type PatternFlowIgmpv1Type_Choice_Enum int32 @@ -16269,11 +16621,11 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) String() string { } func (PatternFlowIgmpv1Type_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[296].Descriptor() + return file_otg_proto_enumTypes[303].Descriptor() } func (PatternFlowIgmpv1Type_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[296] + return &file_otg_proto_enumTypes[303] } func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16282,7 +16634,7 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Type_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Type_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{721, 0, 0} } type PatternFlowIgmpv1Unused_Choice_Enum int32 @@ -16324,11 +16676,11 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) String() string { } func (PatternFlowIgmpv1Unused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[297].Descriptor() + return file_otg_proto_enumTypes[304].Descriptor() } func (PatternFlowIgmpv1Unused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[297] + return &file_otg_proto_enumTypes[304] } func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16337,7 +16689,7 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Unused_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Unused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{724, 0, 0} } type PatternFlowIgmpv1Checksum_Choice_Enum int32 @@ -16373,11 +16725,11 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[298].Descriptor() + return file_otg_proto_enumTypes[305].Descriptor() } func (PatternFlowIgmpv1Checksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[298] + return &file_otg_proto_enumTypes[305] } func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16386,7 +16738,7 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIgmpv1Checksum_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{725, 0, 0} } type PatternFlowIgmpv1Checksum_Generated_Enum int32 @@ -16422,11 +16774,11 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[299].Descriptor() + return file_otg_proto_enumTypes[306].Descriptor() } func (PatternFlowIgmpv1Checksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[299] + return &file_otg_proto_enumTypes[306] } func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16435,7 +16787,7 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIgmpv1Checksum_Generated_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{725, 1, 0} } type PatternFlowIgmpv1GroupAddress_Choice_Enum int32 @@ -16477,11 +16829,11 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) String() string { } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[300].Descriptor() + return file_otg_proto_enumTypes[307].Descriptor() } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[300] + return &file_otg_proto_enumTypes[307] } func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16490,7 +16842,7 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1GroupAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{728, 0, 0} } type PatternFlowMplsLabel_Choice_Enum int32 @@ -16535,11 +16887,11 @@ func (x PatternFlowMplsLabel_Choice_Enum) String() string { } func (PatternFlowMplsLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[301].Descriptor() + return file_otg_proto_enumTypes[308].Descriptor() } func (PatternFlowMplsLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[301] + return &file_otg_proto_enumTypes[308] } func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16548,7 +16900,7 @@ func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowMplsLabel_Choice_Enum.Descriptor instead. func (PatternFlowMplsLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{731, 0, 0} } type PatternFlowMplsTrafficClass_Choice_Enum int32 @@ -16590,11 +16942,11 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) String() string { } func (PatternFlowMplsTrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[302].Descriptor() + return file_otg_proto_enumTypes[309].Descriptor() } func (PatternFlowMplsTrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[302] + return &file_otg_proto_enumTypes[309] } func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16603,7 +16955,7 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowMplsTrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowMplsTrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{734, 0, 0} } type PatternFlowMplsBottomOfStack_Choice_Enum int32 @@ -16648,11 +17000,11 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) String() string { } func (PatternFlowMplsBottomOfStack_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[303].Descriptor() + return file_otg_proto_enumTypes[310].Descriptor() } func (PatternFlowMplsBottomOfStack_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[303] + return &file_otg_proto_enumTypes[310] } func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16661,7 +17013,7 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowMplsBottomOfStack_Choice_Enum.Descriptor instead. func (PatternFlowMplsBottomOfStack_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{737, 0, 0} } type PatternFlowMplsTimeToLive_Choice_Enum int32 @@ -16703,11 +17055,11 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) String() string { } func (PatternFlowMplsTimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[304].Descriptor() + return file_otg_proto_enumTypes[311].Descriptor() } func (PatternFlowMplsTimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[304] + return &file_otg_proto_enumTypes[311] } func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16716,7 +17068,7 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowMplsTimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowMplsTimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{740, 0, 0} } // A container for all models that are part of the configuration. @@ -24152,6 +24504,10 @@ type BgpV4RouteRange struct { // objects. // required = true Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -24181,6 +24537,15 @@ type BgpV4RouteRange struct { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } func (x *BgpV4RouteRange) Reset() { @@ -24292,6 +24657,13 @@ func (x *BgpV4RouteRange) GetExtCommunities() []*BgpExtCommunity { return nil } +func (x *BgpV4RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { + if x != nil { + return x.ExtendedCommunities + } + return nil +} + // The BGP Additional Paths feature is a BGP extension that allows the advertisement // of multiple paths for the same prefix without the new paths implicitly replacing // any previous paths. @@ -24344,78 +24716,40 @@ func (x *BgpAddPath) GetPathId() uint32 { return 0 } -// Emulated BGPv6 route range. -type BgpV6RouteRange struct { +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// with the Type Code 16. Community and Extended Communities attributes are utilized +// to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. +// An extended community is an 8-Bytes value.It is divided into two main parts. The +// first 2 Bytes of the community encode a type and optonal sub-type field. The last +// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a +// format defined by the type and optional sub-type field. Extended communities provide +// a larger range for grouping or categorizing communities. +type BgpExtendedCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv6 route addresses. - Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the - // NextHop in the MP REACH NLRI can be one of the following: - // Local IP: Automatically fills the Nexthop with the Local IP of the BGP - // peer. - // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // default = Choice.Enum.transitive_2octet_as_type + Choice *BgpExtendedCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunity_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3,oneof" json:"transitive_2octet_as_type,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3,oneof" json:"transitive_ipv4_address_type,omitempty"` + // Description missing in models + Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3,oneof" json:"transitive_4octet_as_type,omitempty"` + // Description missing in models + TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3,oneof" json:"transitive_opaque_type,omitempty"` + // Description missing in models + TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3,oneof" json:"transitive_evpn_type,omitempty"` + // Description missing in models + NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3,oneof" json:"non_transitive_2octet_as_type,omitempty"` + // Description missing in models + Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *BgpV6RouteRange) Reset() { - *x = BgpV6RouteRange{} +func (x *BgpExtendedCommunity) Reset() { + *x = BgpExtendedCommunity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24423,13 +24757,13 @@ func (x *BgpV6RouteRange) Reset() { } } -func (x *BgpV6RouteRange) String() string { +func (x *BgpExtendedCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange) ProtoMessage() {} +func (*BgpExtendedCommunity) ProtoMessage() {} -func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24441,178 +24775,87 @@ func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunity.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{82} } -func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { - if x != nil { - return x.Addresses - } - return nil -} - -func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpV6RouteRange_NextHopMode_unspecified -} - -func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType - } - return BgpV6RouteRange_NextHopAddressType_unspecified -} - -func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address +func (x *BgpExtendedCommunity) GetChoice() BgpExtendedCommunity_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunity_Choice_unspecified } -func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpExtendedCommunity) GetTransitive_2OctetAsType() *BgpExtendedCommunityTransitive2OctetAsType { + if x != nil { + return x.Transitive_2OctetAsType } - return "" + return nil } -func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { +func (x *BgpExtendedCommunity) GetTransitiveIpv4AddressType() *BgpExtendedCommunityTransitiveIpv4AddressType { if x != nil { - return x.Advanced + return x.TransitiveIpv4AddressType } return nil } -func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { +func (x *BgpExtendedCommunity) GetTransitive_4OctetAsType() *BgpExtendedCommunityTransitive4OctetAsType { if x != nil { - return x.Communities + return x.Transitive_4OctetAsType } return nil } -func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { +func (x *BgpExtendedCommunity) GetTransitiveOpaqueType() *BgpExtendedCommunityTransitiveOpaqueType { if x != nil { - return x.AsPath + return x.TransitiveOpaqueType } return nil } -func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { +func (x *BgpExtendedCommunity) GetTransitiveEvpnType() *BgpExtendedCommunityTransitiveEvpnType { if x != nil { - return x.AddPath + return x.TransitiveEvpnType } return nil } -func (x *BgpV6RouteRange) GetName() string { +func (x *BgpExtendedCommunity) GetNonTransitive_2OctetAsType() *BgpExtendedCommunityNonTransitive2OctetAsType { if x != nil { - return x.Name + return x.NonTransitive_2OctetAsType } - return "" + return nil } -func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpExtendedCommunity) GetCustom() *BgpExtendedCommunityCustomType { if x != nil { - return x.ExtCommunities + return x.Custom } return nil } -// Configuration for BGP Segment Routing Traffic Engineering(SRTE) -// policy. -type BgpSrteV4Policy struct { +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 4-octet value uniquely identifying the policy in the context of (color, endpoint) - // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) - // both for multiple candidate paths of the same SR Policy as well as candidate paths - // of different SR Policies (i.e. with different segment list) with the same Color - // and Endpoint but meant for different head-ends. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Policy color is used to match the color of the destination prefixes to steer traffic - // into the SR Policy. + // The two octet IANA assigned AS value assigned to the Autonomous System. // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv4Endpoint string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3" json:"ipv4_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv4 - NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, - // Nexthop Encoding capability extended_next_hop_encoding should be enabled. - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // Optional Community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // List Tunnel Encapsulation Attributes. - TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteV4Policy) Reset() { - *x = BgpSrteV4Policy{} +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24620,13 +24863,13 @@ func (x *BgpSrteV4Policy) Reset() { } } -func (x *BgpSrteV4Policy) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24638,167 +24881,120 @@ func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{83} } -func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *BgpSrteV4Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { - if x != nil { - return x.Ipv4Endpoint - } - return "" -} - -func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpSrteV4Policy_NextHopMode_unspecified -} - -func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType - } - return BgpSrteV4Policy_NextHopAddressType_unspecified -} - -func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" -} - -func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address - } - return "" -} +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced - } - return nil + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath - } - return nil +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities - } - return nil -} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { - if x != nil { - return x.TunnelTlvs - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{84} } -func (x *BgpSrteV4Policy) GetName() string { - if x != nil { - return x.Name +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } - return "" + return 0 } -func (x *BgpSrteV4Policy) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } - return false + return 0 } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV4TunnelTlv struct { +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` - // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` - // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` - // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` - // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` - // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteV4TunnelTlv) Reset() { - *x = BgpSrteV4TunnelTlv{} +func (x *BgpExtendedCommunityTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[84] + mi := &file_otg_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4TunnelTlv) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4TunnelTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[84] +func (x *BgpExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24809,118 +25005,130 @@ func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{84} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85} } -func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { - if x != nil { - return x.RemoteEndpointSubTlv +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetChoice() BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { if x != nil { - return x.ColorSubTlv + return x.RouteTargetSubtype } return nil } -func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if x != nil { - return x.BindingSubTlv + return x.RouteOriginSubtype } return nil } -func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { - if x != nil { - return x.PreferenceSubTlv - } - return nil +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { - if x != nil { - return x.PolicyPrioritySubTlv +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { - if x != nil { - return x.PolicyNameSubTlv - } - return nil +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { - if x != nil { - return x.ExplicitNullLabelPolicySubTlv +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} + +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { - if x != nil { - return x.SegmentLists - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{86} } -func (x *BgpSrteV4TunnelTlv) GetName() string { - if x != nil { - return x.Name +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteV4TunnelTlv) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return false + return 0 } -// Configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv struct { +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Autonomous system (AS) number - // default = 0 - AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Determines the address type - // default = AddressFamily.Enum.ipv4 - AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` - // The IPv4 address of the Remote Endpoint. + // An IPv4 unicast address assigned by one of the Internet registries. // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The IPv6 address of the Remote Endpoint. - // default = ::0 - Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteRemoteEndpointSubTlv) Reset() { - *x = BgpSrteRemoteEndpointSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[85] + mi := &file_otg_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteRemoteEndpointSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[85] +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24931,70 +25139,57 @@ func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85} -} - -func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 -} - -func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { - if x != nil && x.AddressFamily != nil { - return *x.AddressFamily - } - return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{87} } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return "" + return 0 } -// Configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used -// as a way to color the corresponding Tunnel TLV. The Value field of the sub-TLV is -// eight octets long and consists of a Color Extended Community. First two octets of -// its Value field are 0x030b as type and subtype of extended community. Remaining -// six octets are are exposed to configure. -type BgpSrteColorSubTlv struct { +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Six octet values. Example: 000000000064 for color value 100. - Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteColorSubTlv) Reset() { - *x = BgpSrteColorSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[86] + mi := &file_otg_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteColorSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteColorSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} -func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[86] +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25005,58 +25200,67 @@ func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{86} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88} } -func (x *BgpSrteColorSubTlv) GetColor() string { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetChoice() BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified } -// Configuration for the binding SID sub-TLV. This is used to signal the binding SID -// related information of the SR Policy candidate path. -type BgpSrteBindingSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype + } + return nil +} - // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or - // IPv6 SID. - // default = BindingSidType.Enum.no_binding - BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` - // Binding SID is encoded in 4 octets. - FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` - // IPv6 SID value. - Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` - // S-Flag encodes the Specified-BSID-only behavior. - // default = False - SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // I-Flag encodes the Drop Upon Invalid behavior. - // default = False - IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + if x != nil { + return x.RouteOriginSubtype + } + return nil } -func (x *BgpSrteBindingSubTlv) Reset() { - *x = BgpSrteBindingSubTlv{} +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02 +type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` +} + +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[87] + mi := &file_otg_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[87] +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25067,74 +25271,59 @@ func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87} -} - -func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { - if x != nil && x.BindingSidType != nil { - return *x.BindingSidType - } - return BgpSrteBindingSubTlv_BindingSidType_unspecified +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{89} } -func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { - if x != nil && x.FourOctetSid != nil { - return *x.FourOctetSid +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { - if x != nil && x.Ipv6Sid != nil { - return *x.Ipv6Sid - } - return "" -} - -func (x *BgpSrteBindingSubTlv) GetSFlag() bool { - if x != nil && x.SFlag != nil { - return *x.SFlag - } - return false -} - -func (x *BgpSrteBindingSubTlv) GetIFlag() bool { - if x != nil && x.IFlag != nil { - return *x.IFlag +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return false + return 0 } -// Configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv struct { +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The preference value of the SR Policy candidate path. - // default = 0 - Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrtePreferenceSubTlv) Reset() { - *x = BgpSrtePreferenceSubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[88] + mi := &file_otg_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePreferenceSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[88] +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25145,46 +25334,58 @@ func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{88} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{90} } -func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { - if x != nil && x.Preference != nil { - return *x.Preference +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -// Configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the -// order in which the SR policies are re-computed upon topological change. -type BgpSrtePolicyPrioritySubTlv struct { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin + } + return 0 +} + +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One-octet Priority value. - PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrtePolicyPrioritySubTlv) Reset() { - *x = BgpSrtePolicyPrioritySubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[89] + mi := &file_otg_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePolicyPrioritySubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} -func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[89] +func (x *BgpExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25195,47 +25396,68 @@ func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{89} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91} } -func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { - if x != nil && x.PolicyPriority != nil { - return *x.PolicyPriority +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetChoice() BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified } -// Configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach -// a symbolic name to the SR Policy candidate path. -type BgpSrtePolicyNameSubTlv struct { +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype + } + return nil +} + +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + if x != nil { + return x.RouteOriginSubtype + } + return nil +} + +// The Color Community contains locally administrator defined 'color' value which is +// used in conjunction with Encapsulation attribute to decide whether a data packet +// can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent +// with sub-type as 0x0b. +type BgpExtendedCommunityTransitiveOpaqueTypeColor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Symbolic name for the policy that should be a string of printable ASCII characters, - // without a NULL terminator. - PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` + // Two octet flag values. + // default = 0 + Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // The color value is user defined and configured locally and used to determine whether + // a data packet can be transmitted on a certain tunnel or not in conjunction with the + // Encapsulation attribute. It is defined in RFC9012. + // default = 0 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpSrtePolicyNameSubTlv) Reset() { - *x = BgpSrtePolicyNameSubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeColor{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[90] + mi := &file_otg_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePolicyNameSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} -func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[90] +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25246,46 +25468,67 @@ func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{90} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{92} } -func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { - if x != nil && x.PolicyName != nil { - return *x.PolicyName +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags } - return "" + return 0 } -// Configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv struct { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value of the explicit null label policy - // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp - ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + // + // default = 0 + Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Identifies the type of tunneling technology being signalled. Initially defined in + // RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 + // over IP [RFC9012], + // 2 GRE [RFC9012] + // 7 IP in IP [RFC9012] + // 8 VXLAN Encapsulation [RFC8365] + // 9 NVGRE Encapsulation [RFC8365] + // 10 MPLS Encapsulation [RFC8365] + // 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] + // 19 Geneve Encapsulation [RFC8926] + // default = 1 + TunnelType *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[91] + mi := &file_otg_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[91] +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25296,59 +25539,57 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{93} } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { - if x != nil && x.ExplicitNullLabelPolicy != nil { - return *x.ExplicitNullLabelPolicy +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { + if x != nil && x.Reserved != nil { + return *x.Reserved } - return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified + return 0 } -// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV -// encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList struct { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { + if x != nil && x.TunnelType != nil { + return *x.TunnelType + } + return 0 +} + +// The Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Weight associated with a given path and the sub-TLV is optional. - // default = 0 - Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` // Description missing in models - Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` + // default = Choice.Enum.color_subtype + Choice *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3,oneof" json:"color_subtype,omitempty"` + // Description missing in models + EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3,oneof" json:"encapsulation_subtype,omitempty"` } -func (x *BgpSrteSegmentList) Reset() { - *x = BgpSrteSegmentList{} +func (x *BgpExtendedCommunityTransitiveOpaqueType) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[92] + mi := &file_otg_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentList) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentList) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} -func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[92] +func (x *BgpExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25359,114 +25600,61 @@ func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{92} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94} } -func (x *BgpSrteSegmentList) GetWeight() uint32 { - if x != nil && x.Weight != nil { - return *x.Weight +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetChoice() BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified } -func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeColor { if x != nil { - return x.Segments + return x.ColorSubtype } return nil } -func (x *BgpSrteSegmentList) GetName() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { if x != nil { - return x.Name - } - return "" -} - -func (x *BgpSrteSegmentList) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active + return x.EncapsulationSubtype } - return false + return nil } -// A Segment sub-TLV describes a single segment in a segment list i.e., a single element -// of the explicit path. The Segment sub-TLVs are optional. -type BgpSrteSegment struct { +// The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN +// Type-2 Routes . It is sent with sub-type 0x03. +type BgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specify one of the segment type. - // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 - // Type A: SID only, in the form of MPLS Label. - // Type B: SID only, in the form of IPv6 Address. - // Type C: IPv4 Node Address with optional SID. - // Type D: IPv6 Node Address with optional SID for SR MPLS. - // Type E: IPv4 Address and index with optional SID. - // Type F: IPv4 Local and Remote addresses with optional SID. - // Type G: IPv6 Address and index for local and remote pair with optional - // SID for SR MPLS. - // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. - // Type I: IPv6 Node Address with optional SID for SRv6. - // Type J: IPv6 Address and index for local and remote pair with optional - // SID for SRv6. - // Type K: IPv6 Local and Remote addresses for SRv6. - // required = true - SegmentType BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum" json:"segment_type,omitempty"` - // Description missing in models - TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3,oneof" json:"type_a,omitempty"` - // Description missing in models - TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3,oneof" json:"type_b,omitempty"` - // Description missing in models - TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3,oneof" json:"type_c,omitempty"` - // Description missing in models - TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3,oneof" json:"type_d,omitempty"` - // Description missing in models - TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3,oneof" json:"type_e,omitempty"` - // Description missing in models - TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3,oneof" json:"type_f,omitempty"` - // Description missing in models - TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3,oneof" json:"type_g,omitempty"` - // Description missing in models - TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3,oneof" json:"type_h,omitempty"` - // Description missing in models - TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3,oneof" json:"type_i,omitempty"` - // Description missing in models - TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3,oneof" json:"type_j,omitempty"` - // Description missing in models - TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3,oneof" json:"type_k,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` + // MAC Address of the PE Router. + // default = 0:0:0:0:0:0 + RouterMac *string `protobuf:"bytes,1,opt,name=router_mac,json=routerMac,proto3,oneof" json:"router_mac,omitempty"` } -func (x *BgpSrteSegment) Reset() { - *x = BgpSrteSegment{} +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnTypeRouterMac{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[93] + mi := &file_otg_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegment) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoMessage() {} -func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[93] +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25477,142 +25665,171 @@ func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnTypeRouterMac.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{95} } -func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { - if x != nil { - return x.SegmentType +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) GetRouterMac() string { + if x != nil && x.RouterMac != nil { + return *x.RouterMac } - return BgpSrteSegment_SegmentType_unspecified + return "" } -func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { - if x != nil { - return x.TypeA - } - return nil +// The Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.router_mac_subtype + Choice *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3,oneof" json:"router_mac_subtype,omitempty"` } -func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { - if x != nil { - return x.TypeB +func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { - if x != nil { - return x.TypeC - } - return nil +func (x *BgpExtendedCommunityTransitiveEvpnType) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { - if x != nil { - return x.TypeD +func (*BgpExtendedCommunityTransitiveEvpnType) ProtoMessage() {} + +func (x *BgpExtendedCommunityTransitiveEvpnType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { - if x != nil { - return x.TypeE - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96} } -func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { - if x != nil { - return x.TypeF +func (x *BgpExtendedCommunityTransitiveEvpnType) GetChoice() BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified } -func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { +func (x *BgpExtendedCommunityTransitiveEvpnType) GetRouterMacSubtype() *BgpExtendedCommunityTransitiveEvpnTypeRouterMac { if x != nil { - return x.TypeG + return x.RouterMacSubtype } return nil } -func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { - if x != nil { - return x.TypeH - } - return nil +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the Global Administrator subfield should represent the Autonomous System + // of the router that attaches the Link Bandwidth Community. If four octet AS numbering + // scheme is used, AS_TRANS (23456) should be used. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` } -func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { - if x != nil { - return x.TypeI +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { - if x != nil { - return x.TypeJ - } - return nil +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { - if x != nil { - return x.TypeK +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} + +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteSegment) GetName() string { - if x != nil { - return x.Name +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{97} +} + +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } - return "" + return 0 } -func (x *BgpSrteSegment) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return false + return 0 } -// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. -type BgpSrteSrMplsSid struct { +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // Description missing in models + // default = Choice.Enum.link_bandwidth_subtype + Choice *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3,oneof" json:"link_bandwidth_subtype,omitempty"` } -func (x *BgpSrteSrMplsSid) Reset() { - *x = BgpSrteSrMplsSid{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[94] + mi := &file_otg_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSrMplsSid) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSrMplsSid) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[94] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25623,78 +25840,64 @@ func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. -func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{94} -} - -func (x *BgpSrteSrMplsSid) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label - } - return 0 -} - -func (x *BgpSrteSrMplsSid) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc - } - return 0 +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98} } -func (x *BgpSrteSrMplsSid) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetChoice() BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteSrMplsSid) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if x != nil { + return x.LinkBandwidthSubtype } - return 0 + return nil } -// Configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation -// of lengths for Locator Block, Locator Node, Function, and Argument MUST be less -// than or equal to 128. -type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { +// Add a custom Extended Community with a combination of types , sub-types and values +// not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // SRv6 SID Locator Block length in bits. - // default = 0 - LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` - // SRv6 SID Locator Node length in bits. - // default = 0 - LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` - // SRv6 SID Function length in bits. - // default = 0 - FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` - // SRv6 SID Arguments length in bits. - // default = 0 - ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` + // The type to be set in the Extended Community attribute. Accepts hexadecimal input + // upto ff . + // default = 00 + CommunityType *string `protobuf:"bytes,1,opt,name=community_type,json=communityType,proto3,oneof" json:"community_type,omitempty"` + // The sub-type to be set in the Extended Community attribute. For certain types with + // no sub-type this byte can also be used as part of an extended value field. Accepts + // hexadecimal input upto ff. + // default = 00 + CommunitySubtype *string `protobuf:"bytes,2,opt,name=community_subtype,json=communitySubtype,proto3,oneof" json:"community_subtype,omitempty"` + // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts + // hexadecimal input upto ffffffffffff. + // default = 000000000000 + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { - *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} +func (x *BgpExtendedCommunityCustomType) Reset() { + *x = BgpExtendedCommunityCustomType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[95] + mi := &file_otg_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { +func (x *BgpExtendedCommunityCustomType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} +func (*BgpExtendedCommunityCustomType) ProtoMessage() {} -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[95] +func (x *BgpExtendedCommunityCustomType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25705,75 +25908,132 @@ func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{95} +// Deprecated: Use BgpExtendedCommunityCustomType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityCustomType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{99} } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { - if x != nil && x.LbLength != nil { - return *x.LbLength +func (x *BgpExtendedCommunityCustomType) GetCommunityType() string { + if x != nil && x.CommunityType != nil { + return *x.CommunityType } - return 0 + return "" } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { - if x != nil && x.LnLength != nil { - return *x.LnLength +func (x *BgpExtendedCommunityCustomType) GetCommunitySubtype() string { + if x != nil && x.CommunitySubtype != nil { + return *x.CommunitySubtype } - return 0 -} - -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { - if x != nil && x.FuncLength != nil { - return *x.FuncLength - } - return 0 + return "" } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { - if x != nil && x.ArgLength != nil { - return *x.ArgLength +func (x *BgpExtendedCommunityCustomType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return 0 + return "" } -// Type A: SID only, in the form of MPLS Label. -type BgpSrteSegmentATypeSubTlv struct { +// Emulated BGPv6 route range. +type BgpV6RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // A list of group of IPv6 route addresses. + Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the + // NextHop in the MP REACH NLRI can be one of the following: + // Local IP: Automatically fills the Nexthop with the Local IP of the BGP + // peer. + // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. Note evpn type is defined mainly for use with evpn + // route updates and not for IPv4 and IPv6 route updates. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } -func (x *BgpSrteSegmentATypeSubTlv) Reset() { - *x = BgpSrteSegmentATypeSubTlv{} +func (x *BgpV6RouteRange) Reset() { + *x = BgpV6RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[96] + mi := &file_otg_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentATypeSubTlv) String() string { +func (x *BgpV6RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} +func (*BgpV6RouteRange) ProtoMessage() {} -func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[96] +func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25784,151 +26044,200 @@ func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{96} +// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100} } -func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { + if x != nil { + return x.Addresses } - return "" + return nil } -func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label +func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return 0 + return BgpV6RouteRange_NextHopMode_unspecified } -func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc +func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType } - return 0 + return BgpV6RouteRange_NextHopAddressType_unspecified } -func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit +func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return false + return "" } -func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } - return 0 -} - -// Type B: SID only, in the form of IPv6 address. -type BgpSrteSegmentBTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SRv6 SID. - // required = true - Srv6Sid string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + return "" } -func (x *BgpSrteSegmentBTypeSubTlv) Reset() { - *x = BgpSrteSegmentBTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} - -func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{97} +func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath + } + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpV6RouteRange) GetName() string { + if x != nil { + return x.Name } return "" } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { +func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.Srv6Sid + return x.ExtCommunities } - return "" + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { +func (x *BgpV6RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { if x != nil { - return x.Srv6SidEndpointBehavior + return x.ExtendedCommunities } return nil } -// Type C: IPv4 Node Address with optional SID. -type BgpSrteSegmentCTypeSubTlv struct { +// Configuration for BGP Segment Routing Traffic Engineering(SRTE) +// policy. +type BgpSrteV4Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv4 address representing a node. + // 4-octet value uniquely identifying the policy in the context of (color, endpoint) + // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) + // both for multiple candidate paths of the same SR Policy as well as candidate paths + // of different SR Policies (i.e. with different segment list) with the same Color + // and Endpoint but meant for different head-ends. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Policy color is used to match the color of the destination prefixes to steer traffic + // into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected + // on the basis of the SR Policy type (AFI). // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + Ipv4Endpoint string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3" json:"ipv4_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv4 + NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, + // Nexthop Encoding capability extended_next_hop_encoding should be enabled. + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Optional Community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // List Tunnel Encapsulation Attributes. + TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteSegmentCTypeSubTlv) Reset() { - *x = BgpSrteSegmentCTypeSubTlv{} +func (x *BgpSrteV4Policy) Reset() { + *x = BgpSrteV4Policy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[98] + mi := &file_otg_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentCTypeSubTlv) String() string { +func (x *BgpSrteV4Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} +func (*BgpSrteV4Policy) ProtoMessage() {} -func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[98] +func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25939,154 +26248,167 @@ func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{98} +// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101} } -func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return "" + return 0 } -func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrteV4Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } return 0 } -func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { +func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { if x != nil { - return x.Ipv4NodeAddress + return x.Ipv4Endpoint } return "" } -func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return nil + return BgpSrteV4Policy_NextHopMode_unspecified } -// Type D: IPv6 Node Address with optional SID for SR MPLS. -type BgpSrteSegmentDTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType + } + return BgpSrteV4Policy_NextHopAddressType_unspecified +} - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // specifying SR Algorithm when when A-Flag as defined in above flags. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` +func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address + } + return "" } -func (x *BgpSrteSegmentDTypeSubTlv) Reset() { - *x = BgpSrteSegmentDTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } + return "" } -func (x *BgpSrteSegmentDTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} +func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath + } + return nil +} -func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{99} +func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities } - return "" + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { + if x != nil { + return x.TunnelTlvs } - return 0 + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { +func (x *BgpSrteV4Policy) GetName() string { if x != nil { - return x.Ipv6NodeAddress + return x.Name } return "" } -func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Type E: IPv4 Address and Local Interface ID with optional SID -type BgpSrteSegmentETypeSubTlv struct { +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV4TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv4 address representing a node. + // Description missing in models + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + // Description missing in models + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + // Description missing in models + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + // Description missing in models + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + // Description missing in models + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + // Description missing in models + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // Description missing in models + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteSegmentETypeSubTlv) Reset() { - *x = BgpSrteSegmentETypeSubTlv{} +func (x *BgpSrteV4TunnelTlv) Reset() { + *x = BgpSrteV4TunnelTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[100] + mi := &file_otg_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentETypeSubTlv) String() string { +func (x *BgpSrteV4TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} +func (*BgpSrteV4TunnelTlv) ProtoMessage() {} -func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[100] +func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26097,161 +26419,118 @@ func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{100} +// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{102} } -func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { + if x != nil { + return x.RemoteEndpointSubTlv } - return "" + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { + if x != nil { + return x.ColorSubTlv } - return 0 + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { +func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.Ipv4NodeAddress + return x.BindingSubTlv } - return "" + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { +func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { if x != nil { - return x.SrMplsSid + return x.PreferenceSubTlv } return nil } -// Type F: IPv4 Local and Remote addresses with optional SID. -type BgpSrteSegmentFTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv4 Address. - // required = true - LocalIpv4Address string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3" json:"local_ipv4_address,omitempty"` - // Remote IPv4 Address. - // required = true - RemoteIpv4Address string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3" json:"remote_ipv4_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` -} - -func (x *BgpSrteSegmentFTypeSubTlv) Reset() { - *x = BgpSrteSegmentFTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { + if x != nil { + return x.PolicyPrioritySubTlv } + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} - -func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { + if x != nil { + return x.PolicyNameSubTlv } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{101} + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { + if x != nil { + return x.ExplicitNullLabelPolicySubTlv } - return "" + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { +func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { if x != nil { - return x.LocalIpv4Address + return x.SegmentLists } - return "" + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { +func (x *BgpSrteV4TunnelTlv) GetName() string { if x != nil { - return x.RemoteIpv4Address + return x.Name } return "" } -func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for -// SR MPLS. -type BgpSrteSegmentGTypeSubTlv struct { +// Configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. + // Autonomous system (AS) number // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Determines the address type + // default = AddressFamily.Enum.ipv4 + AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` + // The IPv4 address of the Remote Endpoint. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The IPv6 address of the Remote Endpoint. + // default = ::0 + Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` } -func (x *BgpSrteSegmentGTypeSubTlv) Reset() { - *x = BgpSrteSegmentGTypeSubTlv{} +func (x *BgpSrteRemoteEndpointSubTlv) Reset() { + *x = BgpSrteRemoteEndpointSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[102] + mi := &file_otg_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentGTypeSubTlv) String() string { +func (x *BgpSrteRemoteEndpointSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[102] +func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26262,89 +26541,70 @@ func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{102} -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" +// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103} } -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { + if x != nil && x.AddressFamily != nil { + return *x.AddressFamily } - return 0 + return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified } -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return nil + return "" } -// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. -type BgpSrteSegmentHTypeSubTlv struct { +// Configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used +// as a way to color the corresponding Tunnel TLV. The Value field of the sub-TLV is +// eight octets long and consists of a Color Extended Community. First two octets of +// its Value field are 0x030b as type and subtype of extended community. Remaining +// six octets are are exposed to configure. +type BgpSrteColorSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv6 Address. - // required = true - LocalIpv6Address string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` - // Remote IPv6 Address. - // required = true - RemoteIpv6Address string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + // Six octet values. Example: 000000000064 for color value 100. + Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpSrteSegmentHTypeSubTlv) Reset() { - *x = BgpSrteSegmentHTypeSubTlv{} +func (x *BgpSrteColorSubTlv) Reset() { + *x = BgpSrteColorSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[103] + mi := &file_otg_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentHTypeSubTlv) String() string { +func (x *BgpSrteColorSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} +func (*BgpSrteColorSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[103] +func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26355,74 +26615,58 @@ func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103} -} - -func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address - } - return "" +// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{104} } -func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address +func (x *BgpSrteColorSubTlv) GetColor() string { + if x != nil && x.Color != nil { + return *x.Color } return "" } -func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type I: IPv6 Node Address with optional SRv6 SID. -type BgpSrteSegmentITypeSubTlv struct { +// Configuration for the binding SID sub-TLV. This is used to signal the binding SID +// related information of the SR Policy candidate path. +type BgpSrteBindingSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or + // IPv6 SID. + // default = BindingSidType.Enum.no_binding + BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` + // Binding SID is encoded in 4 octets. + FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` + // IPv6 SID value. + Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` + // S-Flag encodes the Specified-BSID-only behavior. + // default = False + SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // I-Flag encodes the Drop Upon Invalid behavior. + // default = False + IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` } -func (x *BgpSrteSegmentITypeSubTlv) Reset() { - *x = BgpSrteSegmentITypeSubTlv{} +func (x *BgpSrteBindingSubTlv) Reset() { + *x = BgpSrteBindingSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[104] + mi := &file_otg_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentITypeSubTlv) String() string { +func (x *BgpSrteBindingSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} +func (*BgpSrteBindingSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[104] +func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26433,87 +26677,74 @@ func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{104} +// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105} } -func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { + if x != nil && x.BindingSidType != nil { + return *x.BindingSidType } - return "" + return BgpSrteBindingSubTlv_BindingSidType_unspecified } -func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { - if x != nil { - return x.Ipv6NodeAddress +func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { + if x != nil && x.FourOctetSid != nil { + return *x.FourOctetSid } - return "" + return 0 } -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid +func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { + if x != nil && x.Ipv6Sid != nil { + return *x.Ipv6Sid } return "" } -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior +func (x *BgpSrteBindingSubTlv) GetSFlag() bool { + if x != nil && x.SFlag != nil { + return *x.SFlag } - return nil + return false } -// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional -// SID. -type BgpSrteSegmentJTypeSubTlv struct { +func (x *BgpSrteBindingSubTlv) GetIFlag() bool { + if x != nil && x.IFlag != nil { + return *x.IFlag + } + return false +} + +// Configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. + // The preference value of the SR Policy candidate path. // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` } -func (x *BgpSrteSegmentJTypeSubTlv) Reset() { - *x = BgpSrteSegmentJTypeSubTlv{} +func (x *BgpSrtePreferenceSubTlv) Reset() { + *x = BgpSrtePreferenceSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[105] + mi := &file_otg_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentJTypeSubTlv) String() string { +func (x *BgpSrtePreferenceSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} +func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[105] +func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26524,108 +26755,46 @@ func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105} -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId - } - return 0 -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress - } - return "" +// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{106} } -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { + if x != nil && x.Preference != nil { + return *x.Preference } return 0 } -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior - } - return nil -} - -// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. -type BgpSrteSegmentKTypeSubTlv struct { +// Configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the +// order in which the SR policies are re-computed upon topological change. +type BgpSrtePolicyPrioritySubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6Address string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6Address string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + // One-octet Priority value. + PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` } -func (x *BgpSrteSegmentKTypeSubTlv) Reset() { - *x = BgpSrteSegmentKTypeSubTlv{} +func (x *BgpSrtePolicyPrioritySubTlv) Reset() { + *x = BgpSrtePolicyPrioritySubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[106] + mi := &file_otg_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentKTypeSubTlv) String() string { +func (x *BgpSrtePolicyPrioritySubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} +func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[106] +func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26636,156 +26805,47 @@ func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{106} -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" +// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{107} } -func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { + if x != nil && x.PolicyPriority != nil { + return *x.PolicyPriority } return 0 } -func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior - } - return nil -} - -// Configuration for BGP Segment Routing Traffic Engineering policy. -type BgpSrteV6Policy struct { +// Configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach +// a symbolic name to the SR Policy candidate path. +type BgpSrtePolicyNameSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Identifies the policy in the context of (color and endpoint) tuple. It is used by - // the SR Policy originator to make unique multiple occurrences of the same SR Policy. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Identifies the policy. It is used to match the color of the destination prefixes - // to steer traffic into the SR Policy. - // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv6Endpoint string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3" json:"ipv6_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop - // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding - // capability extended_next_hop_encoding should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - Extcommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` - // List of optional tunnel TLV settings. - TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + // Symbolic name for the policy that should be a string of printable ASCII characters, + // without a NULL terminator. + PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` } -func (x *BgpSrteV6Policy) Reset() { - *x = BgpSrteV6Policy{} +func (x *BgpSrtePolicyNameSubTlv) Reset() { + *x = BgpSrtePolicyNameSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[107] + mi := &file_otg_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy) String() string { +func (x *BgpSrtePolicyNameSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy) ProtoMessage() {} +func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} -func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[107] +func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26796,167 +26856,227 @@ func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107} +// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{108} } -func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { + if x != nil && x.PolicyName != nil { + return *x.PolicyName } - return 0 + return "" } -func (x *BgpSrteV6Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color - } - return 0 +// Configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the explicit null label policy + // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp + ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` } -func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { - if x != nil { - return x.Ipv6Endpoint +func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpSrteV6Policy_NextHopMode_unspecified +func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} + +func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return BgpSrteV6Policy_NextHopAddressType_unspecified + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109} } -func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { + if x != nil && x.ExplicitNullLabelPolicy != nil { + return *x.ExplicitNullLabelPolicy } - return "" + return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified } -func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced - } - return nil +// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV +// encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Weight associated with a given path and the sub-TLV is optional. + // default = 0 + Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + // Description missing in models + Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *BgpSrteSegmentList) Reset() { + *x = BgpSrteSegmentList{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath - } - return nil +func (x *BgpSrteSegmentList) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (*BgpSrteSegmentList) ProtoMessage() {} + +func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { - if x != nil { - return x.Extcommunities +// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{110} +} + +func (x *BgpSrteSegmentList) GetWeight() uint32 { + if x != nil && x.Weight != nil { + return *x.Weight } - return nil + return 0 } -func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { +func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { if x != nil { - return x.TunnelTlvs + return x.Segments } return nil } -func (x *BgpSrteV6Policy) GetName() string { +func (x *BgpSrteSegmentList) GetName() string { if x != nil { return x.Name } return "" } -func (x *BgpSrteV6Policy) GetActive() bool { +func (x *BgpSrteSegmentList) GetActive() bool { if x != nil && x.Active != nil { return *x.Active } return false } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV6TunnelTlv struct { +// A Segment sub-TLV describes a single segment in a segment list i.e., a single element +// of the explicit path. The Segment sub-TLVs are optional. +type BgpSrteSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Specify one of the segment type. + // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 + // Type A: SID only, in the form of MPLS Label. + // Type B: SID only, in the form of IPv6 Address. + // Type C: IPv4 Node Address with optional SID. + // Type D: IPv6 Node Address with optional SID for SR MPLS. + // Type E: IPv4 Address and index with optional SID. + // Type F: IPv4 Local and Remote addresses with optional SID. + // Type G: IPv6 Address and index for local and remote pair with optional + // SID for SR MPLS. + // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. + // Type I: IPv6 Node Address with optional SID for SRv6. + // Type J: IPv6 Address and index for local and remote pair with optional + // SID for SRv6. + // Type K: IPv6 Local and Remote addresses for SRv6. + // required = true + SegmentType BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum" json:"segment_type,omitempty"` // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3,oneof" json:"type_a,omitempty"` // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3,oneof" json:"type_b,omitempty"` // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3,oneof" json:"type_c,omitempty"` // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3,oneof" json:"type_d,omitempty"` // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3,oneof" json:"type_e,omitempty"` // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3,oneof" json:"type_f,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3,oneof" json:"type_g,omitempty"` // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3,oneof" json:"type_h,omitempty"` + // Description missing in models + TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3,oneof" json:"type_i,omitempty"` + // Description missing in models + TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3,oneof" json:"type_j,omitempty"` + // Description missing in models + TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3,oneof" json:"type_k,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to // advertise just this part of the configuration to the peer. // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteV6TunnelTlv) Reset() { - *x = BgpSrteV6TunnelTlv{} +func (x *BgpSrteSegment) Reset() { + *x = BgpSrteSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[108] + mi := &file_otg_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6TunnelTlv) String() string { +func (x *BgpSrteSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6TunnelTlv) ProtoMessage() {} +func (*BgpSrteSegment) ProtoMessage() {} -func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[108] +func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26967,130 +27087,142 @@ func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{108} +// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111} } -func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { +func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { if x != nil { - return x.RemoteEndpointSubTlv + return x.SegmentType + } + return BgpSrteSegment_SegmentType_unspecified +} + +func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { + if x != nil { + return x.TypeA } return nil } -func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { +func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { if x != nil { - return x.ColorSubTlv + return x.TypeB } return nil } -func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { +func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { if x != nil { - return x.BindingSubTlv + return x.TypeC } return nil } -func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { +func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { if x != nil { - return x.PreferenceSubTlv + return x.TypeD } return nil } -func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { +func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { if x != nil { - return x.PolicyPrioritySubTlv + return x.TypeE } return nil } -func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { +func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { if x != nil { - return x.PolicyNameSubTlv + return x.TypeF } return nil } -func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { +func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { if x != nil { - return x.ExplicitNullLabelPolicySubTlv + return x.TypeG } return nil } -func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { +func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { if x != nil { - return x.SegmentLists + return x.TypeH } return nil } -func (x *BgpSrteV6TunnelTlv) GetName() string { +func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { + if x != nil { + return x.TypeI + } + return nil +} + +func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { + if x != nil { + return x.TypeJ + } + return nil +} + +func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { + if x != nil { + return x.TypeK + } + return nil +} + +func (x *BgpSrteSegment) GetName() string { if x != nil { return x.Name } return "" } -func (x *BgpSrteV6TunnelTlv) GetActive() bool { +func (x *BgpSrteSegment) GetActive() bool { if x != nil && x.Active != nil { return *x.Active } return false } -// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by -// a BGP speaker to indicate its ability to preserve its forwarding state during BGP -// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent -// between BGP peers. After a BGP session has been established, and the initial routing -// update has been completed, an End-of-RIB (Routing Information Base) marker is sent -// in an UPDATE message to convey information about routing convergence. -type BgpGracefulRestart struct { +// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. +type BgpSrteSrMplsSid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. - // default = False - EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` - // This is the estimated duration (in seconds) it will take for the BGP session to be - // re-established after a restart. This can be used to speed up routing convergence - // by its peer in case the BGP speaker does not come back after a restart. - // default = 45 - RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` - // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability - // will be advertised. - // This capability MUST be advertised in conjunction with the Graceful Restart - // capability. - // default = False - EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` - // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) - // may be retained. This is a three byte field and is applicable - // only if 'enable_llgr' is set to 'true'. - // default = 10 - StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpGracefulRestart) Reset() { - *x = BgpGracefulRestart{} +func (x *BgpSrteSrMplsSid) Reset() { + *x = BgpSrteSrMplsSid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[109] + mi := &file_otg_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpGracefulRestart) String() string { +func (x *BgpSrteSrMplsSid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpGracefulRestart) ProtoMessage() {} +func (*BgpSrteSrMplsSid) ProtoMessage() {} -func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[109] +func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27101,130 +27233,78 @@ func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. -func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{109} +// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. +func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{112} } -func (x *BgpGracefulRestart) GetEnableGr() bool { - if x != nil && x.EnableGr != nil { - return *x.EnableGr +func (x *BgpSrteSrMplsSid) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return false + return 0 } -func (x *BgpGracefulRestart) GetRestartTime() uint32 { - if x != nil && x.RestartTime != nil { - return *x.RestartTime +func (x *BgpSrteSrMplsSid) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } -func (x *BgpGracefulRestart) GetEnableLlgr() bool { - if x != nil && x.EnableLlgr != nil { - return *x.EnableLlgr +func (x *BgpSrteSrMplsSid) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } return false } -func (x *BgpGracefulRestart) GetStaleTime() uint32 { - if x != nil && x.StaleTime != nil { - return *x.StaleTime +func (x *BgpSrteSrMplsSid) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -// Configuration for BGPv6 peer settings and routes. -type BgpV6Peer struct { +// Configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation +// of lengths for Locator Block, Locator Node, Function, and Argument MUST be less +// than or equal to 128. +type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 address of the BGP peer for the session - // required = true - PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` - // Description missing in models - SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3,oneof" json:"segment_routing,omitempty"` - // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments - // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). - // - // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . - // Each EVI contains a list of Broadcast Domains. - // Each Broadcast Domain contains a list of MAC/IP Ranges. - // - // is responsible for advertising Ethernet - // Auto-discovery Route Per EVI (Type 1). - // - // is responsible for advertising Ethernet Auto-discovery Route - // Per Ethernet Segment (Type 1). - // - // is responsible for advertising - // MAC/IP Advertisement Route (Type 2). - // - // is responsible for advertising Inclusive - // Multicast Ethernet Tag Route (Type 3). - // - // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). - EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` - // The type of BGP autonomous system. External BGP is used for BGP links between two - // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous - // system (ibgp). BGP property defaults are aligned with this object defined as an internal - // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to - // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' - // attribute in 'as_path' field in any Route Range should be changed from default value - // 'do_not_include_local_as' to any other value. - // required = true - AsType BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum" json:"as_type,omitempty"` - // Autonomous System Number (AS number or ASN) - // required = true - AsNumber uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` - // The width in bytes of the as_number values. Any as_number values that exceeds the - // width MUST result in an error. - // default = AsNumberWidth.Enum.four - AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` - // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3,oneof" json:"capability,omitempty"` - // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` - // Emulated BGPv4 route ranges. - V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` - // Emulated BGPv6 route ranges. - V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier - // (AFI). - V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier - // (AFI). - V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` + // SRv6 SID Locator Block length in bits. + // default = 0 + LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` + // SRv6 SID Locator Node length in bits. + // default = 0 + LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` + // SRv6 SID Function length in bits. + // default = 0 + FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` + // SRv6 SID Arguments length in bits. + // default = 0 + ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` } -func (x *BgpV6Peer) Reset() { - *x = BgpV6Peer{} +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { + *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[110] + mi := &file_otg_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer) String() string { +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer) ProtoMessage() {} +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} -func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[110] +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27235,156 +27315,158 @@ func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. -func (*BgpV6Peer) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110} -} - -func (x *BgpV6Peer) GetPeerAddress() string { - if x != nil { - return x.PeerAddress - } - return "" +// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{113} } -func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { - if x != nil { - return x.SegmentRouting +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { + if x != nil && x.LbLength != nil { + return *x.LbLength } - return nil + return 0 } -func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { - if x != nil { - return x.EvpnEthernetSegments +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { + if x != nil && x.LnLength != nil { + return *x.LnLength } - return nil + return 0 } -func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { - if x != nil { - return x.AsType +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { + if x != nil && x.FuncLength != nil { + return *x.FuncLength } - return BgpV6Peer_AsType_unspecified + return 0 } -func (x *BgpV6Peer) GetAsNumber() uint32 { - if x != nil { - return x.AsNumber +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { + if x != nil && x.ArgLength != nil { + return *x.ArgLength } return 0 } -func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { - if x != nil && x.AsNumberWidth != nil { - return *x.AsNumberWidth - } - return BgpV6Peer_AsNumberWidth_unspecified +// Type A: SID only, in the form of MPLS Label. +type BgpSrteSegmentATypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { - if x != nil { - return x.Advanced +func (x *BgpSrteSegmentATypeSubTlv) Reset() { + *x = BgpSrteSegmentATypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6Peer) GetCapability() *BgpCapability { - if x != nil { - return x.Capability - } - return nil +func (x *BgpSrteSegmentATypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { - if x != nil { - return x.LearnedInformationFilter +func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { - if x != nil { - return x.V4Routes - } - return nil +// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{114} } -func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { - if x != nil { - return x.V6Routes +func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { - if x != nil { - return x.V4SrtePolicies +func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return nil + return 0 } -func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { - if x != nil { - return x.V6SrtePolicies +func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } - return nil + return 0 } -func (x *BgpV6Peer) GetName() string { - if x != nil { - return x.Name +func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } - return "" + return false } -func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { - if x != nil { - return x.GracefulRestart +func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } - return nil + return 0 } -// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. -type BgpV6Interface struct { +// Type B: SID only, in the form of IPv6 address. +type BgpSrteSegmentBTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of IPv6 or Loopback IPv6 interface used as the source IP for this - // list of BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SRv6 SID. // required = true - Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` - // This contains the list of BGPv6 peers configured on this interface. - Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` + Srv6Sid string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpV6Interface) Reset() { - *x = BgpV6Interface{} +func (x *BgpSrteSegmentBTypeSubTlv) Reset() { + *x = BgpSrteSegmentBTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[111] + mi := &file_otg_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Interface) String() string { +func (x *BgpSrteSegmentBTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Interface) ProtoMessage() {} +func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} -func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[111] +func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27395,74 +27477,68 @@ func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. -func (*BgpV6Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{111} +// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{115} } -func (x *BgpV6Interface) GetIpv6Name() string { +func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { if x != nil { - return x.Ipv6Name + return x.Srv6Sid } return "" } -func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.Peers + return x.Srv6SidEndpointBehavior } return nil } -// Configuration for BGPv6 segment routing settings. -type BgpV6SegmentRouting struct { +// Type C: IPv4 Node Address with optional SID. +type BgpSrteSegmentCTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // TBD - // default = False - IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` - // TBD - // default = False - ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` - // TBD - // default = False - CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` - // TBD - // default = 0 - TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // TBD - // default = 0 - MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` - // TBD - // default = False - AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` - // TBD + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. // default = 0 - SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` - // TBD - // default = False - AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6SegmentRouting) Reset() { - *x = BgpV6SegmentRouting{} +func (x *BgpSrteSegmentCTypeSubTlv) Reset() { + *x = BgpSrteSegmentCTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[112] + mi := &file_otg_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6SegmentRouting) String() string { +func (x *BgpSrteSegmentCTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6SegmentRouting) ProtoMessage() {} +func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} -func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[112] +func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27473,143 +27549,75 @@ func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. -func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{112} -} - -func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { - if x != nil && x.IngressSupportsVpn != nil { - return *x.IngressSupportsVpn - } - return false -} - -func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { - if x != nil && x.ReducedEncapsulation != nil { - return *x.ReducedEncapsulation - } - return false -} - -func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { - if x != nil && x.CopyTimeToLive != nil { - return *x.CopyTimeToLive - } - return false +// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{116} } -func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { - if x != nil && x.TimeToLive != nil { - return *x.TimeToLive +func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return 0 + return "" } -func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { - if x != nil && x.MaxSidsPerSrh != nil { - return *x.MaxSidsPerSrh +func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } return 0 } -func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { - if x != nil && x.AutoGenerateSegmentLeftValue != nil { - return *x.AutoGenerateSegmentLeftValue - } - return false -} - -func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { - if x != nil && x.SegmentLeftValue != nil { - return *x.SegmentLeftValue +func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { + if x != nil { + return x.Ipv4NodeAddress } - return 0 + return "" } -func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { - if x != nil && x.AdvertiseSrTePolicy != nil { - return *x.AdvertiseSrTePolicy +func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } - return false + return nil } -// Configuration for BGP Ethernet Segment ranges. Advertises following routes - -// -// Type 4 - Ethernet Segment Route -type BgpV6EthernetSegment struct { +// Type D: IPv6 Node Address with optional SID for SR MPLS. +type BgpSrteSegmentDTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` - // This contains the list of EVIs. - Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` - // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero - // ESI is '10000000000000000000' . - // default = 00000000000000000000 - Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` - // Single Active or All Active mode Redundancy mode selection for Multi-home. - // default = ActiveMode.Enum.all_active - ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` - // The label value to be advertised as ESI Label in ESI Label Extended Community. This - // is included in Ethernet Auto-discovery per ES Routes advertised by a router. + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // specifying SR Algorithm when when A-Flag as defined in above flags. // default = 0 - EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EthernetSegment) Reset() { - *x = BgpV6EthernetSegment{} +func (x *BgpSrteSegmentDTypeSubTlv) Reset() { + *x = BgpSrteSegmentDTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[113] + mi := &file_otg_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment) String() string { +func (x *BgpSrteSegmentDTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment) ProtoMessage() {} +func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[113] +func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27620,107 +27628,154 @@ func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113} +// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{117} } -func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { - if x != nil { - return x.DfElection +func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { - if x != nil { - return x.Evis +func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return nil + return 0 } -func (x *BgpV6EthernetSegment) GetEsi() string { - if x != nil && x.Esi != nil { - return *x.Esi +func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { + if x != nil { + return x.Ipv6NodeAddress } return "" } -func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { - if x != nil && x.ActiveMode != nil { - return *x.ActiveMode +func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } - return BgpV6EthernetSegment_ActiveMode_unspecified + return nil } -func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { - if x != nil && x.EsiLabel != nil { - return *x.EsiLabel +// Type E: IPv4 Address and Local Interface ID with optional SID +type BgpSrteSegmentETypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` +} + +func (x *BgpSrteSegmentETypeSubTlv) Reset() { + *x = BgpSrteSegmentETypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *BgpSrteSegmentETypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{118} +} + +func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { if x != nil { - return x.ExtCommunities + return x.Ipv4NodeAddress } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { +func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.AsPath + return x.SrMplsSid } return nil } -// This contains a list of different flavors of EVPN. -// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. -// -// Need to instantiate correct type of EVPN instance as per requirement. -type BgpV6EvpnEvis struct { +// Type F: IPv4 Local and Remote addresses with optional SID. +type BgpSrteSegmentFTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.evi_vxlan - Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` - // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv4 Address. + // required = true + LocalIpv4Address string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3" json:"local_ipv4_address,omitempty"` + // Remote IPv4 Address. + // required = true + RemoteIpv4Address string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3" json:"remote_ipv4_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EvpnEvis) Reset() { - *x = BgpV6EvpnEvis{} +func (x *BgpSrteSegmentFTypeSubTlv) Reset() { + *x = BgpSrteSegmentFTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[114] + mi := &file_otg_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis) String() string { +func (x *BgpSrteSegmentFTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis) ProtoMessage() {} +func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[114] +func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27731,115 +27786,82 @@ func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114} +// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{119} } -func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpV6EvpnEvis_Choice_unspecified + return "" } -func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { +func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { if x != nil { - return x.EviVxlan + return x.LocalIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { + if x != nil { + return x.RemoteIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } return nil } -// Configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV6EviVxlan struct { +// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for +// SR MPLS. +type BgpSrteSegmentGTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Broadcast Domains to be configured per EVI. - BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` - // This model only supports Ingress Replication - // default = ReplicationType.Enum.ingress_replication - ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` - // Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel - // attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. - // default = 16 - PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` - // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet - // Auto-discovery Route per + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 - AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` - // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying - // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` - // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with - // this EVI. - RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` - // List of L2VNI import targets associated with this EVI. - RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` - // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. - L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` - // List of L3VNI Import Route Targets. - L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6NodeAddress string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EviVxlan) Reset() { - *x = BgpV6EviVxlan{} +func (x *BgpSrteSegmentGTypeSubTlv) Reset() { + *x = BgpSrteSegmentGTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[115] + mi := &file_otg_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan) String() string { +func (x *BgpSrteSegmentGTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan) ProtoMessage() {} +func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[115] +func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27850,138 +27872,167 @@ func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115} +// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{120} } -func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { - if x != nil { - return x.BroadcastDomains +func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { - if x != nil && x.ReplicationType != nil { - return *x.ReplicationType +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } - return BgpV6EviVxlan_ReplicationType_unspecified + return 0 } -func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { - if x != nil && x.PmsiLabel != nil { - return *x.PmsiLabel +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { + if x != nil { + return x.LocalIpv6NodeAddress } - return 0 + return "" } -func (x *BgpV6EviVxlan) GetAdLabel() uint32 { - if x != nil && x.AdLabel != nil { - return *x.AdLabel +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId } return 0 } -func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { if x != nil { - return x.RouteDistinguisher + return x.RemoteIpv6NodeAddress } - return nil + return "" } -func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { +func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.RouteTargetExport + return x.SrMplsSid } return nil } -func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetImport - } - return nil +// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. +type BgpSrteSegmentHTypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv6 Address. + // required = true + LocalIpv6Address string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + // Remote IPv6 Address. + // required = true + RemoteIpv6Address string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetExport +func (x *BgpSrteSegmentHTypeSubTlv) Reset() { + *x = BgpSrteSegmentHTypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetImport +func (x *BgpSrteSegmentHTypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{121} +} + +func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { +func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { if x != nil { - return x.Communities + return x.LocalIpv6Address } - return nil + return "" } -func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { if x != nil { - return x.ExtCommunities + return x.RemoteIpv6Address } - return nil + return "" } -func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { +func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.AsPath + return x.SrMplsSid } return nil } -// Configuration for Broadcast Domains per EVI. -type BgpV6EviVxlanBroadcastDomain struct { +// Type I: IPv6 Node Address with optional SRv6 SID. +type BgpSrteSegmentITypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. - // - // Advertises following route - - // Type 2 - MAC/IP Advertisement Route. - CmacIpRange []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` - // The Ethernet Tag ID of the Broadcast Domain. - // default = 0 - EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` - // VLAN-Aware service to be enabled or disabled. - // default = False - VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpV6EviVxlanBroadcastDomain) Reset() { - *x = BgpV6EviVxlanBroadcastDomain{} +func (x *BgpSrteSegmentITypeSubTlv) Reset() { + *x = BgpSrteSegmentITypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[116] + mi := &file_otg_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlanBroadcastDomain) String() string { +func (x *BgpSrteSegmentITypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} +func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} -func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[116] +func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27992,61 +28043,87 @@ func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{116} +// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{122} } -func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { +func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { if x != nil { - return x.CmacIpRange + return x.Ipv6NodeAddress } - return nil + return "" } -func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { - if x != nil && x.EthernetTagId != nil { - return *x.EthernetTagId +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid } - return 0 + return "" } -func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { - if x != nil && x.VlanAwareService != nil { - return *x.VlanAwareService +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior } - return false + return nil } -// Description missing in models -type DeviceVxlan struct { +// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional +// SID. +type BgpSrteSegmentJTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 VXLAN Tunnels - V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` - // IPv6 VXLAN Tunnels - V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6NodeAddress string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *DeviceVxlan) Reset() { - *x = DeviceVxlan{} +func (x *BgpSrteSegmentJTypeSubTlv) Reset() { + *x = BgpSrteSegmentJTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[117] + mi := &file_otg_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVxlan) String() string { +func (x *BgpSrteSegmentJTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVxlan) ProtoMessage() {} +func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} -func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[117] +func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28057,74 +28134,108 @@ func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. -func (*DeviceVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{117} +// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{123} } -func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { +func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { if x != nil { - return x.V4Tunnels + return x.LocalIpv6NodeAddress } - return nil + return "" } -func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { if x != nil { - return x.V6Tunnels + return x.RemoteIpv6NodeAddress + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior } return nil } -// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point -// interface. -type VxlanV4Tunnel struct { +// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. +type BgpSrteSegmentKTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` - // Description missing in models - DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + LocalIpv6Address string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + // IPv6 address representing a node. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + RemoteIpv6Address string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *VxlanV4Tunnel) Reset() { - *x = VxlanV4Tunnel{} +func (x *BgpSrteSegmentKTypeSubTlv) Reset() { + *x = BgpSrteSegmentKTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[118] + mi := &file_otg_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4Tunnel) String() string { +func (x *BgpSrteSegmentKTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4Tunnel) ProtoMessage() {} +func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} -func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[118] +func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28135,88 +28246,156 @@ func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{118} +// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{124} } -func (x *VxlanV4Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface +func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } return "" } -func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { - if x != nil { - return x.DestinationIpMode +func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return nil + return 0 } -func (x *VxlanV4Tunnel) GetVni() uint32 { +func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { if x != nil { - return x.Vni + return x.LocalIpv6Address } - return 0 + return "" } -func (x *VxlanV4Tunnel) GetName() string { +func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { if x != nil { - return x.Name + return x.RemoteIpv6Address } return "" } -// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point -// interface. -type VxlanV6Tunnel struct { +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior + } + return nil +} + +// Configuration for BGP Segment Routing Traffic Engineering policy. +type BgpSrteV6Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // + // Identifies the policy in the context of (color and endpoint) tuple. It is used by + // the SR Policy originator to make unique multiple occurrences of the same SR Policy. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Identifies the policy. It is used to match the color of the destination prefixes + // to steer traffic into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected + // on the basis of the SR Policy type (AFI). // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + Ipv6Endpoint string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3" json:"ipv6_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop + // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding + // capability extended_next_hop_encoding should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire - // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + Extcommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` + // List of optional tunnel TLV settings. + TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *VxlanV6Tunnel) Reset() { - *x = VxlanV6Tunnel{} +func (x *BgpSrteV6Policy) Reset() { + *x = BgpSrteV6Policy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[119] + mi := &file_otg_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6Tunnel) String() string { +func (x *BgpSrteV6Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6Tunnel) ProtoMessage() {} +func (*BgpSrteV6Policy) ProtoMessage() {} -func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[119] +func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28227,139 +28406,167 @@ func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{119} -} - -func (x *VxlanV6Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface - } - return "" +// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125} } -func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { - if x != nil { - return x.DestinationIpMode +func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return nil + return 0 } -func (x *VxlanV6Tunnel) GetVni() uint32 { - if x != nil { - return x.Vni +func (x *BgpSrteV6Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } return 0 } -func (x *VxlanV6Tunnel) GetName() string { +func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { if x != nil { - return x.Name + return x.Ipv6Endpoint } return "" } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV4TunnelDestinationIPMode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode + } + return BgpSrteV6Policy_NextHopMode_unspecified +} - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` - // Description missing in models - Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` +func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType + } + return BgpSrteV6Policy_NextHopAddressType_unspecified } -func (x *VxlanV4TunnelDestinationIPMode) Reset() { - *x = VxlanV4TunnelDestinationIPMode{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } + return "" } -func (x *VxlanV4TunnelDestinationIPMode) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address + } + return "" } -func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} +func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil +} -func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120} +func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return VxlanV4TunnelDestinationIPMode_Choice_unspecified + return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { +func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { if x != nil { - return x.Unicast + return x.Extcommunities } return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { +func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { if x != nil { - return x.Multicast + return x.TunnelTlvs } return nil } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV6TunnelDestinationIPMode struct { +func (x *BgpSrteV6Policy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BgpSrteV6Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV6TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` // Description missing in models - Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + // Description missing in models + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + // Description missing in models + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + // Description missing in models + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + // Description missing in models + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // Description missing in models + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *VxlanV6TunnelDestinationIPMode) Reset() { - *x = VxlanV6TunnelDestinationIPMode{} +func (x *BgpSrteV6TunnelTlv) Reset() { + *x = BgpSrteV6TunnelTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[121] + mi := &file_otg_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode) String() string { +func (x *BgpSrteV6TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} +func (*BgpSrteV6TunnelTlv) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[121] +func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28370,163 +28577,130 @@ func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121} +// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{126} } -func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { + if x != nil { + return x.RemoteEndpointSubTlv } - return VxlanV6TunnelDestinationIPMode_Choice_unspecified + return nil } -func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { +func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { if x != nil { - return x.Unicast + return x.ColorSubTlv } return nil } -func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { +func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.Multicast + return x.BindingSubTlv } return nil } -// Description missing in models -type VxlanV4TunnelDestinationIPModeUnicast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` -} - -func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { + if x != nil { + return x.PreferenceSubTlv } + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} - -func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { + if x != nil { + return x.PolicyPrioritySubTlv } - return mi.MessageOf(x) -} - -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{122} + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { +func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { if x != nil { - return x.Vteps + return x.PolicyNameSubTlv } return nil } -// Description missing in models -type VxlanV6TunnelDestinationIPModeUnicast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` -} - -func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { + if x != nil { + return x.ExplicitNullLabelPolicySubTlv } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} - -func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { + if x != nil { + return x.SegmentLists } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{123} +func (x *BgpSrteV6TunnelTlv) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { - if x != nil { - return x.Vteps +func (x *BgpSrteV6TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated -// MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request -// for another end-host IP address, its local VTEP intercepts the ARP request and checks -// for the ARP-resolved IP address in its ARP suppression cache table. If it finds -// a match, the local VTEP sends an ARP response on behalf of the remote end host. -type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { +// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by +// a BGP speaker to indicate its ability to preserve its forwarding state during BGP +// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent +// between BGP peers. After a BGP session has been established, and the initial routing +// update has been completed, an End-of-RIB (Routing Information Base) marker is sent +// in an UPDATE message to convey information about routing convergence. +type BgpGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VM MAC address bound to Remote VM IPv4 address - RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` - // Remote VM IPv4 address - RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` + // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. + // default = False + EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` + // This is the estimated duration (in seconds) it will take for the BGP session to be + // re-established after a restart. This can be used to speed up routing convergence + // by its peer in case the BGP speaker does not come back after a restart. + // default = 45 + RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` + // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability + // will be advertised. + // This capability MUST be advertised in conjunction with the Graceful Restart + // capability. + // default = False + EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` + // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) + // may be retained. This is a three byte field and is applicable + // only if 'enable_llgr' is set to 'true'. + // default = 10 + StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { - *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} +func (x *BgpGracefulRestart) Reset() { + *x = BgpGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[124] + mi := &file_otg_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (x *BgpGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} +func (*BgpGracefulRestart) ProtoMessage() {} -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[124] +func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28537,58 +28711,130 @@ func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{124} +// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. +func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{127} } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { - if x != nil && x.RemoteVmMac != nil { - return *x.RemoteVmMac +func (x *BgpGracefulRestart) GetEnableGr() bool { + if x != nil && x.EnableGr != nil { + return *x.EnableGr } - return "" + return false } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { - if x != nil && x.RemoteVmIpv4 != nil { - return *x.RemoteVmIpv4 +func (x *BgpGracefulRestart) GetRestartTime() uint32 { + if x != nil && x.RestartTime != nil { + return *x.RestartTime } - return "" + return 0 } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV4TunnelDestinationIPModeUnicastVtep struct { +func (x *BgpGracefulRestart) GetEnableLlgr() bool { + if x != nil && x.EnableLlgr != nil { + return *x.EnableLlgr + } + return false +} + +func (x *BgpGracefulRestart) GetStaleTime() uint32 { + if x != nil && x.StaleTime != nil { + return *x.StaleTime + } + return 0 +} + +// Configuration for BGPv6 peer settings and routes. +type BgpV6Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated - // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request - // for another end-host IP address, its local VTEP intercepts the ARP request and checks - // for the ARP-resolved IP address in its ARP suppression cache table. If it finds - // a match, the local VTEP sends an ARP response on behalf of the remote end host. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` + // IPv6 address of the BGP peer for the session + // required = true + PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` + // Description missing in models + SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3,oneof" json:"segment_routing,omitempty"` + // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments + // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). + // + // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . + // Each EVI contains a list of Broadcast Domains. + // Each Broadcast Domain contains a list of MAC/IP Ranges. + // + // is responsible for advertising Ethernet + // Auto-discovery Route Per EVI (Type 1). + // + // is responsible for advertising Ethernet Auto-discovery Route + // Per Ethernet Segment (Type 1). + // + // is responsible for advertising + // MAC/IP Advertisement Route (Type 2). + // + // is responsible for advertising Inclusive + // Multicast Ethernet Tag Route (Type 3). + // + // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). + EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` + // The type of BGP autonomous system. External BGP is used for BGP links between two + // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous + // system (ibgp). BGP property defaults are aligned with this object defined as an internal + // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to + // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' + // attribute in 'as_path' field in any Route Range should be changed from default value + // 'do_not_include_local_as' to any other value. + // required = true + AsType BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum" json:"as_type,omitempty"` + // Autonomous System Number (AS number or ASN) + // required = true + AsNumber uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` + // The width in bytes of the as_number values. Any as_number values that exceeds the + // width MUST result in an error. + // default = AsNumberWidth.Enum.four + AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` + // Description missing in models + Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3,oneof" json:"capability,omitempty"` + // Description missing in models + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` + // Emulated BGPv4 route ranges. + V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` + // Emulated BGPv6 route ranges. + V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier + // (AFI). + V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier + // (AFI). + V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // Description missing in models + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} +func (x *BgpV6Peer) Reset() { + *x = BgpV6Peer{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[125] + mi := &file_otg_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { +func (x *BgpV6Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} +func (*BgpV6Peer) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[125] +func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28599,163 +28845,156 @@ func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{125} +// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. +func (*BgpV6Peer) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128} } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpV6Peer) GetPeerAddress() string { + if x != nil { + return x.PeerAddress } return "" } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { if x != nil { - return x.ArpSuppressionCache + return x.SegmentRouting } return nil } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV6TunnelDestinationIPModeUnicastVtep struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated - // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request - // for another end-host IP address, its local VTEP intercepts the ARP request and checks - // for the ARP-resolved IP address in its ARP suppression cache table. If it finds - // a match, the local VTEP sends an ARP response on behalf of the remote end host. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` +func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { + if x != nil { + return x.EvpnEthernetSegments + } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { + if x != nil { + return x.AsType } + return BgpV6Peer_AsType_unspecified } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6Peer) GetAsNumber() uint32 { + if x != nil { + return x.AsNumber + } + return 0 } -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} - -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { + if x != nil && x.AsNumberWidth != nil { + return *x.AsNumberWidth } - return mi.MessageOf(x) + return BgpV6Peer_AsNumberWidth_unspecified } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{126} +func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpV6Peer) GetCapability() *BgpCapability { + if x != nil { + return x.Capability } - return "" + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { if x != nil { - return x.ArpSuppressionCache + return x.LearnedInformationFilter } return nil } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV4TunnelDestinationIPModeMulticast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // IPv4 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` +func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { + if x != nil { + return x.V4Routes + } + return nil } -func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV4TunnelDestinationIPModeMulticast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { + if x != nil { + return x.V6Routes } + return nil } -func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { + if x != nil { + return x.V4SrtePolicies + } + return nil } -func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} - -func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[127] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { + if x != nil { + return x.V6SrtePolicies } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{127} +func (x *BgpV6Peer) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { + if x != nil { + return x.GracefulRestart } - return "" + return nil } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV6TunnelDestinationIPModeMulticast struct { +// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. +type BgpV6Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The unique name of IPv6 or Loopback IPv6 interface used as the source IP for this + // list of BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // required = true + Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` + // This contains the list of BGPv6 peers configured on this interface. + Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } -func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV6TunnelDestinationIPModeMulticast{} +func (x *BgpV6Interface) Reset() { + *x = BgpV6Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[128] + mi := &file_otg_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { +func (x *BgpV6Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} +func (*BgpV6Interface) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[128] +func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28766,54 +29005,74 @@ func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{128} +// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. +func (*BgpV6Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{129} } -func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpV6Interface) GetIpv6Name() string { + if x != nil { + return x.Ipv6Name } return "" } -// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, -// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related -// specifications. -type DeviceRsvp struct { +func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { + if x != nil { + return x.Peers + } + return nil +} + +// Configuration for BGPv6 segment routing settings. +type BgpV6SegmentRouting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 RSVP connected interfaces. At least one interface should be present - // for device connected to the DUT. For unconnected devices, this array must be empty. - Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` - // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress - // endpoints. - LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // TBD + // default = False + IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` + // TBD + // default = False + ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` + // TBD + // default = False + CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` + // TBD + // default = 0 + TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // TBD + // default = 0 + MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` + // TBD + // default = False + AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` + // TBD + // default = 0 + SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` + // TBD + // default = False + AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` } -func (x *DeviceRsvp) Reset() { - *x = DeviceRsvp{} +func (x *BgpV6SegmentRouting) Reset() { + *x = BgpV6SegmentRouting{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[129] + mi := &file_otg_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceRsvp) String() string { +func (x *BgpV6SegmentRouting) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceRsvp) ProtoMessage() {} +func (*BgpV6SegmentRouting) ProtoMessage() {} -func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[129] +func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28824,108 +29083,143 @@ func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. -func (*DeviceRsvp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{129} +// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. +func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{130} } -func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { - if x != nil { - return x.Ipv4Interfaces +func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { + if x != nil && x.IngressSupportsVpn != nil { + return *x.IngressSupportsVpn } - return nil + return false } -func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { - if x != nil { - return x.LspIpv4Interfaces +func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { + if x != nil && x.ReducedEncapsulation != nil { + return *x.ReducedEncapsulation } - return nil + return false } -func (x *DeviceRsvp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { + if x != nil && x.CopyTimeToLive != nil { + return *x.CopyTimeToLive } - return "" + return false } -// Configuration for RSVP Interface. -type RsvpIpv4Interface struct { +func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { + if x != nil && x.TimeToLive != nil { + return *x.TimeToLive + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { + if x != nil && x.MaxSidsPerSrh != nil { + return *x.MaxSidsPerSrh + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { + if x != nil && x.AutoGenerateSegmentLeftValue != nil { + return *x.AutoGenerateSegmentLeftValue + } + return false +} + +func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { + if x != nil && x.SegmentLeftValue != nil { + return *x.SegmentLeftValue + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { + if x != nil && x.AdvertiseSrTePolicy != nil { + return *x.AdvertiseSrTePolicy + } + return false +} + +// Configuration for BGP Ethernet Segment ranges. Advertises following routes - +// +// Type 4 - Ethernet Segment Route +type BgpV6EthernetSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The globally unique name of the IPv4 interface connected to the DUT. This name must - // match the name field of the ipv4_addresses on top which this RSVP interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` - // IPv4 address of the RSVP neighbor on this interface. - // required = true - NeighborIp string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"` - // The user-defined label space start value. The LSPs for which this router acts as - // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end - // together defines this label-pool. - // default = 1000 - LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` - // The user-defined label space end value.The last label value that can be assigned - // to the LSPs for which this router acts as egress. - // default = 100000 - LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` - // Enables sending of Refresh Reduction as described in RFC2961. - // default = False - EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` - // The number of seconds between transmissions of successive Summary Refreshes. There - // is no specification specified maximum value. For clarity, setting the maximum to - // 1 hour. - // default = 30 - SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` - // Enables aggregration of different RSVP messages within a single PDU. - // default = False - SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` - // The number of milliseconds to wait after which RSVP will bundle different RSVP messages - // and transmit Bundle messages. - // default = 50 - BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` - // Enables sending of Hello Messages as per RFC3209. - // default = False - EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` - // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds - // at which successive Hello Messages are sent as per RFC3209. There is no specification - // specified maximum value. For clarity, setting the maximum to 1 hour. - // default = 9 - HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` - // The number of missed hellos after which the node should consider RSVP Neighbor to - // have timed out. There is no specification specified maximum value. Setting the maximum - // allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // Designated Forwarder (DF) election configuration. + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` + // This contains the list of EVIs. + Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` + // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero + // ESI is '10000000000000000000' . + // default = 00000000000000000000 + Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` + // Single Active or All Active mode Redundancy mode selection for Multi-home. + // default = ActiveMode.Enum.all_active + ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` + // The label value to be advertised as ESI Label in ESI Label Extended Community. This + // is included in Ethernet Auto-discovery per ES Routes advertised by a router. + // default = 0 + EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` } -func (x *RsvpIpv4Interface) Reset() { - *x = RsvpIpv4Interface{} +func (x *BgpV6EthernetSegment) Reset() { + *x = BgpV6EthernetSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[130] + mi := &file_otg_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpIpv4Interface) String() string { +func (x *BgpV6EthernetSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIpv4Interface) ProtoMessage() {} +func (*BgpV6EthernetSegment) ProtoMessage() {} -func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[130] +func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28936,132 +29230,107 @@ func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{130} +// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131} } -func (x *RsvpIpv4Interface) GetIpv4Name() string { +func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { if x != nil { - return x.Ipv4Name + return x.DfElection } - return "" + return nil } -func (x *RsvpIpv4Interface) GetNeighborIp() string { +func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { if x != nil { - return x.NeighborIp - } - return "" -} - -func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { - if x != nil && x.LabelSpaceStart != nil { - return *x.LabelSpaceStart + return x.Evis } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { - if x != nil && x.LabelSpaceEnd != nil { - return *x.LabelSpaceEnd +func (x *BgpV6EthernetSegment) GetEsi() string { + if x != nil && x.Esi != nil { + return *x.Esi } - return 0 + return "" } -func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { - if x != nil && x.EnableRefreshReduction != nil { - return *x.EnableRefreshReduction +func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { + if x != nil && x.ActiveMode != nil { + return *x.ActiveMode } - return false + return BgpV6EthernetSegment_ActiveMode_unspecified } -func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { - if x != nil && x.SummaryRefreshInterval != nil { - return *x.SummaryRefreshInterval +func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { + if x != nil && x.EsiLabel != nil { + return *x.EsiLabel } return 0 } -func (x *RsvpIpv4Interface) GetSendBundle() bool { - if x != nil && x.SendBundle != nil { - return *x.SendBundle - } - return false -} - -func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { - if x != nil && x.BundleThreshold != nil { - return *x.BundleThreshold +func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetEnableHello() bool { - if x != nil && x.EnableHello != nil { - return *x.EnableHello +func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return false + return nil } -func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { - if x != nil && x.HelloInterval != nil { - return *x.HelloInterval +func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier +func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return 0 + return nil } -// Configuration for RSVP LSP IPv4 Interface. -type RsvpLspIpv4Interface struct { +// This contains a list of different flavors of EVPN. +// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. +// +// Need to instantiate correct type of EVPN instance as per requirement. +type BgpV6EvpnEvis struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP - // ingress and egress endpoint for the LSPs configured on this interface. This must - // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP - // interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` - // Contains properties of Tail(Egress) LSPs. - P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3,oneof" json:"p2p_egress_ipv4_lsps,omitempty"` - // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. - P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` + // Description missing in models + // default = Choice.Enum.evi_vxlan + Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` + // EVPN VXLAN instance to be configured per Ethernet Segment. + EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` } -func (x *RsvpLspIpv4Interface) Reset() { - *x = RsvpLspIpv4Interface{} +func (x *BgpV6EvpnEvis) Reset() { + *x = BgpV6EvpnEvis{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[131] + mi := &file_otg_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Interface) String() string { +func (x *BgpV6EvpnEvis) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Interface) ProtoMessage() {} +func (*BgpV6EvpnEvis) ProtoMessage() {} -func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[131] +func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29072,88 +29341,115 @@ func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{131} -} - -func (x *RsvpLspIpv4Interface) GetIpv4Name() string { - if x != nil { - return x.Ipv4Name - } - return "" +// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132} } -func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { - if x != nil { - return x.P2PEgressIpv4Lsps +func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpV6EvpnEvis_Choice_unspecified } -func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { +func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { if x != nil { - return x.P2PIngressIpv4Lsps + return x.EviVxlan } return nil } -// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { +// Configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV6EviVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // The time in seconds between successive transmissions of RESV Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed PATH refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // It determines how RSVP-TE enabled network devices set up reservations along the path - // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is - // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the - // style is chosen based on the value selected for this attribute. - // default = ReservationStyle.Enum.shared_explicit - ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` - // If enabled, a specific fixed label will be advertised by the egress or tail end for - // all Path messages received by this egress. This can be leveraged to advertise Explicit - // or Implicit null labels. - // default = False - EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` - // The fixed label value as advertised by egress in RESV message. Applicable only if - // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - - // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected - // to have a minimum value of 16. + // This contains the list of Broadcast Domains to be configured per EVI. + BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` + // This model only supports Ingress Replication + // default = ReplicationType.Enum.ingress_replication + ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` + // Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel + // attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. + // default = 16 + PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` + // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet + // Auto-discovery Route per // default = 0 - FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` + AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` + // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying + // an EVI. Example - for the as_2octet 60005:100. + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` + // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with + // this EVI. + RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` + // List of L2VNI import targets associated with this EVI. + RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` + // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. + L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` + // List of L3VNI Import Route Targets. + L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} +func (x *BgpV6EviVxlan) Reset() { + *x = BgpV6EviVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[132] + mi := &file_otg_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { +func (x *BgpV6EviVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} +func (*BgpV6EviVxlan) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[132] +func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29164,300 +29460,123 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132} +// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133} } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { +func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { if x != nil { - return x.Name + return x.BroadcastDomains } - return "" + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval +func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { + if x != nil && x.ReplicationType != nil { + return *x.ReplicationType + } + return BgpV6EviVxlan_ReplicationType_unspecified +} + +func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { + if x != nil && x.PmsiLabel != nil { + return *x.PmsiLabel } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier +func (x *BgpV6EviVxlan) GetAdLabel() uint32 { + if x != nil && x.AdLabel != nil { + return *x.AdLabel } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { - if x != nil && x.ReservationStyle != nil { - return *x.ReservationStyle +func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { + if x != nil { + return x.RouteDistinguisher } - return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { - if x != nil && x.EnableFixedLabel != nil { - return *x.EnableFixedLabel +func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetExport } - return false + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { - if x != nil && x.FixedLabelValue != nil { - return *x.FixedLabelValue +func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetImport } - return 0 + return nil } -// Configuration for an RSVP Ingress point-to-point LSP. -type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { + if x != nil { + return x.L3RouteTargetExport + } + return nil +} - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // IPv4 address of the remote endpoint of the LSP. - // required = true - RemoteAddress string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"` - // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. - // default = 1 - TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. - // default = 1 - LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The time in seconds between successive transmissions of PATH Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed RESV refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // The LSP id that will be used when creating a Make-Before-Break LSP when the active - // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is - // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. - // default = 2 - BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` - // The amount of delay in milliseconds that an implementation should wait for before - // switching traffic to the new LSP created after a Make-Before-Break is done on an - // LSP. The default value is 0 which means to switch immediately. An implementation - // should support a minimum delay value of at least 50ms . There is no specification - // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value - // is supplied which is lesser than the minimum delay value supported, a warning should - // be provided indicating that the minimum value of LSP switchover delay is automatically - // increased to the supported minimum value. This warning should be included in the - // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' - // Response. - // default = 0 - LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` - // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object - // in the Path Message sent for the LSP. - SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3,oneof" json:"session_attribute,omitempty"` - // This contains the values of the fields to be included in the TSPEC object in the - // Path Message sent for the LSP. - Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3,oneof" json:"tspec,omitempty"` - // This contains the values of the fields to be included in the FAST_REROUTE object - // in the Path Message sent for the LSP. - // This is an optional object . If this attribute is not included , the FAST_REROUTE - // object will not be included. - FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3,oneof" json:"fast_reroute,omitempty"` - // This contains the values of the fields to be included in the ERO object in the Path - // Message sent for the LSP. - // This is an optional object . If this attribute is not included , the ERO object will - // not be included. - Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3,oneof" json:"ero,omitempty"` -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{133} -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { +func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { if x != nil { - return x.RemoteAddress - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { - if x != nil && x.BackupLspId != nil { - return *x.BackupLspId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { - if x != nil && x.LspSwitchoverDelay != nil { - return *x.LspSwitchoverDelay + return x.L3RouteTargetImport } - return 0 + return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { +func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.SessionAttribute + return x.Advanced } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { +func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { if x != nil { - return x.Tspec + return x.Communities } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { +func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.FastReroute + return x.ExtCommunities } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { +func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { if x != nil { - return x.Ero + return x.AsPath } return nil } -// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined -// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are -// defined in RFC4090 (Fast Reroute). -type RsvpSessionAttribute struct { +// Configuration for Broadcast Domains per EVI. +type BgpV6EviVxlanBroadcastDomain struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE - // object in the Path Message for this LSP. - // default = True - AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` - // If auto_generate_session_name is set to 'false', then the value of this field is - // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message - // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP - // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. - // The maximum length of session name is 254 bytes. - SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // Specifies the value of the Setup Priority field. This controls whether the LSP should - // pre-empt existing LSP setup with certain Holding Priority if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // This flag permits transit routers to use a local repair mechanism which may result - // in violation of the explicit route object. When a fault is detected on an adjacent - // downstream link or node, a transit router can reroute traffic for fast service restoration. - // default = False - LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` - // This flag indicates that label information should be included when doing a route - // record. - // default = False - LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` - // This flag indicates that the tunnel ingress node may choose to reroute this tunnel - // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) - // Style when responding with a Resv message. - // default = False - SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along the protected LSP path that a backup path with a bandwidth guarantee is desired. - // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object - // is included in the PATH message. If a FAST_REROUTE object is present in the Path - // message, then the bandwidth specified therein is to be guaranteed. - // default = False - BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along a protected LSP path that it is desired to have a backup path that bypasses - // at least the next node of the protected LSP. + // This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. + // + // Advertises following route - + // Type 2 - MAC/IP Advertisement Route. + CmacIpRange []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` + // The Ethernet Tag ID of the Broadcast Domain. + // default = 0 + EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` + // VLAN-Aware service to be enabled or disabled. // default = False - NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` - // This is an optional object. If included the extended SESSION_ATTRIBUTE object is - // sent in the Path message containing - // the additional fields included in this object. This contains a set of three bitmaps - // using which further constraints can be - // set on the path calculated for the LSP based on the Admin Group settings in the IGP - // (e.g ISIS or OSPF interface). - ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3,oneof" json:"resource_affinities,omitempty"` + VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` } -func (x *RsvpSessionAttribute) Reset() { - *x = RsvpSessionAttribute{} +func (x *BgpV6EviVxlanBroadcastDomain) Reset() { + *x = BgpV6EviVxlanBroadcastDomain{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29465,13 +29584,13 @@ func (x *RsvpSessionAttribute) Reset() { } } -func (x *RsvpSessionAttribute) String() string { +func (x *BgpV6EviVxlanBroadcastDomain) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpSessionAttribute) ProtoMessage() {} +func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} -func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { +func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29483,132 +29602,139 @@ func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. -func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{134} } -func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { - if x != nil && x.AutoGenerateSessionName != nil { - return *x.AutoGenerateSessionName +func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { + if x != nil { + return x.CmacIpRange } - return false + return nil } -func (x *RsvpSessionAttribute) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName +func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { + if x != nil && x.EthernetTagId != nil { + return *x.EthernetTagId } - return "" + return 0 } -func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority +func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { + if x != nil && x.VlanAwareService != nil { + return *x.VlanAwareService } - return 0 + return false } -func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority - } - return 0 +// Description missing in models +type DeviceVxlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // IPv4 VXLAN Tunnels + V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` + // IPv6 VXLAN Tunnels + V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` } -func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { - if x != nil && x.LocalProtectionDesired != nil { - return *x.LocalProtectionDesired +func (x *DeviceVxlan) Reset() { + *x = DeviceVxlan{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { - if x != nil && x.LabelRecordingDesired != nil { - return *x.LabelRecordingDesired - } - return false +func (x *DeviceVxlan) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { - if x != nil && x.SeStyleDesired != nil { - return *x.SeStyleDesired +func (*DeviceVxlan) ProtoMessage() {} + +func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { - if x != nil && x.BandwidthProtectionDesired != nil { - return *x.BandwidthProtectionDesired - } - return false +// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. +func (*DeviceVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{135} } -func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { - if x != nil && x.NodeProtectionDesired != nil { - return *x.NodeProtectionDesired +func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { + if x != nil { + return x.V4Tunnels } - return false + return nil } -func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { +func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { if x != nil { - return x.ResourceAffinities + return x.V6Tunnels } return nil } -// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is -// sent in the Path message containing -// the additional fields included in this object. This contains a set of three bitmaps -// using which further constraints can be -// set on the path calculated for the LSP based on the Admin Group settings in the IGP -// (e.g ISIS or OSPF interface). -type RsvpResourceAffinities struct { +// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point +// interface. +type VxlanV4Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // Determines the source interface. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // required = true + SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` } -func (x *RsvpResourceAffinities) Reset() { - *x = RsvpResourceAffinities{} +func (x *VxlanV4Tunnel) Reset() { + *x = VxlanV4Tunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[135] + mi := &file_otg_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpResourceAffinities) String() string { +func (x *VxlanV4Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpResourceAffinities) ProtoMessage() {} +func (*VxlanV4Tunnel) ProtoMessage() {} -func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[135] +func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29619,78 +29745,88 @@ func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. -func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{135} +// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{136} } -func (x *RsvpResourceAffinities) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny +func (x *VxlanV4Tunnel) GetSourceInterface() string { + if x != nil { + return x.SourceInterface } return "" } -func (x *RsvpResourceAffinities) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny +func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { + if x != nil { + return x.DestinationIpMode } - return "" + return nil } -func (x *RsvpResourceAffinities) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *VxlanV4Tunnel) GetVni() uint32 { + if x != nil { + return x.Vni + } + return 0 +} + +func (x *VxlanV4Tunnel) GetName() string { + if x != nil { + return x.Name } return "" } -// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these -// parameters is defined in RFC2215. -type RsvpTspec struct { +// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point +// interface. +type VxlanV6Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The rate of the traffic to be carried in this LSP in bytes per second. This is part - // of the Token Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` - // The depth of the token bucket in bytes used to specify the Token Bucket characteristics - // of the traffic to be carried in the LSP. This is part of the Token Bucket specification - // defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` - // The peak data rate of the traffic in bytes per second used to specify the Token Bucket - // characteristics of the traffic to be carried in the LSP. This is part of the Token - // Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` - // Specifies the minium length of packet frames that will be policed. - // default = 0 - MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` - // Specifies the maximum length of packet frames that will be policed. - // default = 0 - MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` + // Determines the source interface. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // required = true + SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` } -func (x *RsvpTspec) Reset() { - *x = RsvpTspec{} +func (x *VxlanV6Tunnel) Reset() { + *x = VxlanV6Tunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[136] + mi := &file_otg_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpTspec) String() string { +func (x *VxlanV6Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpTspec) ProtoMessage() {} +func (*VxlanV6Tunnel) ProtoMessage() {} -func (x *RsvpTspec) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[136] +func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29701,119 +29837,71 @@ func (x *RsvpTspec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. -func (*RsvpTspec) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{136} +// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{137} } -func (x *RsvpTspec) GetTokenBucketRate() float32 { - if x != nil && x.TokenBucketRate != nil { - return *x.TokenBucketRate +func (x *VxlanV6Tunnel) GetSourceInterface() string { + if x != nil { + return x.SourceInterface } - return 0 + return "" } -func (x *RsvpTspec) GetTokenBucketSize() float32 { - if x != nil && x.TokenBucketSize != nil { - return *x.TokenBucketSize +func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { + if x != nil { + return x.DestinationIpMode } - return 0 + return nil } -func (x *RsvpTspec) GetPeakDataRate() float32 { - if x != nil && x.PeakDataRate != nil { - return *x.PeakDataRate +func (x *VxlanV6Tunnel) GetVni() uint32 { + if x != nil { + return x.Vni } return 0 } -func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { - if x != nil && x.MinimumPolicedUnit != nil { - return *x.MinimumPolicedUnit - } - return 0 -} - -func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { - if x != nil && x.MaximumPolicedUnit != nil { - return *x.MaximumPolicedUnit +func (x *VxlanV6Tunnel) GetName() string { + if x != nil { + return x.Name } - return 0 + return "" } -// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages -// as defined in RFC4090. -type RsvpFastReroute struct { +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV4TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specifies the value of the Setup Priority field. This controls whether the backup - // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While - // setting up a backup LSP, preemption of existing LSP can happen if resource limitation - // is encountered (e.g bandwidth availability). - // default = 7 - SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP set up with this - // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen - // if resource limitation is encountered (e.g bandwidth availability). - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // Specifies the value of the Hop Limit field. This controls the maximum number of hops - // the LSP should traverse to reach the LSP end-point. - // default = 3 - HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` - // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, - // in bytes per second, as desired for the LSP. - // default = 0 - Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` - // Requests protection via the one-to-one backup method. - // default = False - OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` - // Requests protection via the facility backup method. - // default = False - FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + // Description missing in models + Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` } -func (x *RsvpFastReroute) Reset() { - *x = RsvpFastReroute{} +func (x *VxlanV4TunnelDestinationIPMode) Reset() { + *x = VxlanV4TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[137] + mi := &file_otg_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpFastReroute) String() string { +func (x *VxlanV4TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpFastReroute) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} -func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[137] +func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29824,115 +29912,64 @@ func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. -func (*RsvpFastReroute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{137} -} - -func (x *RsvpFastReroute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority - } - return 0 -} - -func (x *RsvpFastReroute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority - } - return 0 -} - -func (x *RsvpFastReroute) GetHopLimit() uint32 { - if x != nil && x.HopLimit != nil { - return *x.HopLimit - } - return 0 -} - -func (x *RsvpFastReroute) GetBandwidth() float32 { - if x != nil && x.Bandwidth != nil { - return *x.Bandwidth - } - return 0 -} - -func (x *RsvpFastReroute) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny - } - return "" -} - -func (x *RsvpFastReroute) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny - } - return "" +// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{138} } -func (x *RsvpFastReroute) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return VxlanV4TunnelDestinationIPMode_Choice_unspecified } -func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { - if x != nil && x.OneToOneBackupDesired != nil { - return *x.OneToOneBackupDesired +func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { + if x != nil { + return x.Unicast } - return false + return nil } -func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { - if x != nil && x.FacilityBackupDesired != nil { - return *x.FacilityBackupDesired +func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { + if x != nil { + return x.Multicast } - return false + return nil } -// Configuration for the optional RSVP-TE explicit route object(ERO) object included -// in Path Messages. -type RsvpEro struct { +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV6TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines whether the IP address of the RSVP neighbor should be added as an ERO - // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict - // hop. - // default = PrependNeighborIp.Enum.prepend_loose - PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` - // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set - // this value as the prefix length of the ERO sub-object containing egress IP address. - // - // default = 32 - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate - // hops to be traversed by the LSP while being forwarded towards the egress endpoint. - // These sub-objects are included after the optional sub-object containing IP address - // of egress endpoint of the LSP (when present). - Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + // Description missing in models + Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` } -func (x *RsvpEro) Reset() { - *x = RsvpEro{} +func (x *VxlanV6TunnelDestinationIPMode) Reset() { + *x = VxlanV6TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[138] + mi := &file_otg_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEro) String() string { +func (x *VxlanV6TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} -func (x *RsvpEro) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[138] +func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29943,76 +29980,59 @@ func (x *RsvpEro) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. -func (*RsvpEro) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138} +// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{139} } -func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { - if x != nil && x.PrependNeighborIp != nil { - return *x.PrependNeighborIp +func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return RsvpEro_PrependNeighborIp_unspecified + return VxlanV6TunnelDestinationIPMode_Choice_unspecified } -func (x *RsvpEro) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { + if x != nil { + return x.Unicast } - return 0 + return nil } -func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { +func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { if x != nil { - return x.Subobjects + return x.Multicast } return nil } -// Configuration for the ERO sub-object. -type RsvpEroSubobject struct { +// Description missing in models +type VxlanV4TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of the ERO sub-object, one of IPv4 Address or AS Number. - // default = Type.Enum.ipv4 - Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` - // IPv4 address that this LSP should traverse through. This field is applicable only - // if the value of 'type' is set to 'ipv4'. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable - // only if the value of 'type' is set to 'ipv4'. - // default = 32 - PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Autonomous System number to be set in the ERO sub-object that this LSP should traverse - // through. This field is applicable only if the value of 'type' is set to 'as_number'. - // Note that as per RFC3209, 4-byte AS encoding is not supported. - // default = 0 - AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // The hop type of the ERO sub-object, one of Strict or Loose. - // default = HopType.Enum.loose - HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *RsvpEroSubobject) Reset() { - *x = RsvpEroSubobject{} +func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[139] + mi := &file_otg_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[139] +func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30023,115 +30043,45 @@ func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139} -} - -func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return RsvpEroSubobject_Type_unspecified -} - -func (x *RsvpEroSubobject) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address - } - return "" -} - -func (x *RsvpEroSubobject) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *RsvpEroSubobject) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{140} } -func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { - if x != nil && x.HopType != nil { - return *x.HopType +func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { + if x != nil { + return x.Vteps } - return RsvpEroSubobject_HopType_unspecified + return nil } -// A high level data plane traffic flow. -type Flow struct { +// Description missing in models +type VxlanV6TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The transmit and receive endpoints. - // required = true - TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is transmitted - // by traffic-generator port. - // - // The order of protocol headers assigned to the list is the - // order they will appear on the wire. - // - // In the case of an empty list the keyword/value of minItems: 1 - // indicates that an implementation MUST provide at least one - // Flow.Header object. - // - // The default value for the Flow.Header choice property is ethernet - // which will result in an implementation by default providing at least - // one ethernet packet header. - Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is received - // by traffic-generator port. - // - // For all protocol headers, only the `metric_tags` property is configurable. - EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` - // The size of the packets. - Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` - // The transmit rate of the packets. - Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` - // The transmit duration of the packets. - Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3,oneof" json:"duration,omitempty"` - // Flow metrics. - Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3,oneof" json:"metrics,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *Flow) Reset() { - *x = Flow{} +func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[140] + mi := &file_otg_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Flow) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Flow) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *Flow) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[140] +func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30142,100 +30092,113 @@ func (x *Flow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Flow.ProtoReflect.Descriptor instead. -func (*Flow) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{140} +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{141} } -func (x *Flow) GetTxRx() *FlowTxRx { +func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { if x != nil { - return x.TxRx + return x.Vteps } return nil } -func (x *Flow) GetPacket() []*FlowHeader { - if x != nil { - return x.Packet - } - return nil +// Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated +// MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request +// for another end-host IP address, its local VTEP intercepts the ARP request and checks +// for the ARP-resolved IP address in its ARP suppression cache table. If it finds +// a match, the local VTEP sends an ARP response on behalf of the remote end host. +type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Remote VM MAC address bound to Remote VM IPv4 address + RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` + // Remote VM IPv4 address + RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` } -func (x *Flow) GetEgressPacket() []*FlowHeader { - if x != nil { - return x.EgressPacket +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { + *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *Flow) GetSize() *FlowSize { - if x != nil { - return x.Size - } - return nil +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Flow) GetRate() *FlowRate { - if x != nil { - return x.Rate +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} + +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[142] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *Flow) GetDuration() *FlowDuration { - if x != nil { - return x.Duration - } - return nil +// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{142} } -func (x *Flow) GetMetrics() *FlowMetrics { - if x != nil { - return x.Metrics +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { + if x != nil && x.RemoteVmMac != nil { + return *x.RemoteVmMac } - return nil + return "" } -func (x *Flow) GetName() string { - if x != nil { - return x.Name +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { + if x != nil && x.RemoteVmIpv4 != nil { + return *x.RemoteVmIpv4 } return "" } -// A container for different types of transmit and receive -// endpoint containers. -type FlowTxRx struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV4TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of transmit and receive container used by the flow. - // default = Choice.Enum.port - Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3,oneof" json:"device,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated + // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request + // for another end-host IP address, its local VTEP intercepts the ARP request and checks + // for the ARP-resolved IP address in its ARP suppression cache table. If it finds + // a match, the local VTEP sends an ARP response on behalf of the remote end host. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowTxRx) Reset() { - *x = FlowTxRx{} +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[141] + mi := &file_otg_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowTxRx) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[141] +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30246,99 +30209,58 @@ func (x *FlowTxRx) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. -func (*FlowTxRx) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141} -} - -func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowTxRx_Choice_unspecified +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{143} } -func (x *FlowTxRx) GetPort() *FlowPort { - if x != nil { - return x.Port +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } - return nil + return "" } -func (x *FlowTxRx) GetDevice() *FlowRouter { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.Device + return x.ArpSuppressionCache } return nil } -// A container for a transmit port and 0..n intended receive ports. -// When assigning this container to a flow the flows's -// packet headers will not be populated with any address resolution -// information such as source and/or destination addresses. -// For example Flow.Ethernet dst mac address values will be defaulted to 0. -// For full control over the Flow.properties.packet header contents use this -// container. -type FlowPort struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV6TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of a port that is the transmit port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // required = true - TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` - // Deprecated: This property is deprecated in favor of property rx_names - // - // Deprecated: This property is deprecated in favor of property rx_names - // - // The unique name of a port that is the intended receive port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` - // Unique name of ports or lags that are intended receive endpoints. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated + // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request + // for another end-host IP address, its local VTEP intercepts the ARP request and checks + // for the ARP-resolved IP address in its ARP suppression cache table. If it finds + // a match, the local VTEP sends an ARP response on behalf of the remote end host. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowPort) Reset() { - *x = FlowPort{} +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[142] + mi := &file_otg_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPort) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPort) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[142] +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30349,149 +30271,52 @@ func (x *FlowPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. -func (*FlowPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{142} -} - -func (x *FlowPort) GetTxName() string { - if x != nil { - return x.TxName - } - return "" +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{144} } -func (x *FlowPort) GetRxName() string { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } return "" } -func (x *FlowPort) GetRxNames() []string { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.RxNames + return x.ArpSuppressionCache } return nil } -// A container for declaring a map of 1..n transmit devices to 1..n receive devices. -// This allows for a single flow to have different tx to rx device flows such as a -// single one to one map or a many to many map. -type FlowRouter struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV4TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the intent of creating traffic sub-flow(s) between the device - // endpoints, from the entities of tx_names to the entities of rx_names - // - // to derive how auto packet fields can be populated with - // the actual value(s) by the implementation. - // - // The one_to_one mode creates traffic sub-flow(s) between each device endpoint - // pair in - // tx_names to rx_names by index. - // The length of tx_names and rx_names MUST be the same. - // The same device name can be repeated multiple times in tx_names or rx_names, in any - // order to create desired meshing between device(s). - // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would - // be generated (each pair representing a traffic sub-flow). - // - // The mesh mode creates traffic sub-flow(s) between each value in tx_names to - // every value in rx_names, forming the device endpoint pair(s). - // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs - // would be 2x3=6. - // - // A generated device endpoint pair with same device endpoint name for both transmit - // & receive device endpoint MUST raise an error. - // - // Packet fields of type auto would be populated with one value for each device - // endpoint pair (representing the traffic sub-flow). - // The value would be determined considering transmit & receive device of the sub-flow. - // And the sequence of the populated value(s) - // would be in the order of generated device endpoint pair(s). - // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), - // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then - // the auto field would be replaced by the implementation with a sequence of - // 2 values, [v1,v2] where - // v1 is determined using context (d1,d3) and v2 using context (d2,d3). - // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... - // for ethernet.dst field. Any non-auto packet fields - // should be configured accordingly. For example, non-auto packet field ethernet.src - // can be configured with values [u1, u2], where - // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. - // Then packets on the wire will contain correct value pairs - // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. - // default = Mode.Enum.mesh - Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` - // TBD - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` - // TBD - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // IPv4 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowRouter) Reset() { - *x = FlowRouter{} +func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV4TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[143] + mi := &file_otg_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter) String() string { +func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowRouter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[143] +func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30502,99 +30327,45 @@ func (x *FlowRouter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. -func (*FlowRouter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143} -} - -func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode - } - return FlowRouter_Mode_unspecified -} - -func (x *FlowRouter) GetTxNames() []string { - if x != nil { - return x.TxNames - } - return nil +// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{145} } -func (x *FlowRouter) GetRxNames() []string { - if x != nil { - return x.RxNames +func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return nil + return "" } -// Configuration for all traffic packet headers -type FlowHeader struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV6TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The available types of flow headers. If one is not provided the - // default ethernet packet header MUST be provided. - // default = Choice.Enum.ethernet - Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` - // Description missing in models - Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` - // Description missing in models - Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` - // Description missing in models - Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` - // Description missing in models - Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` - // Description missing in models - Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3,oneof" json:"pfcpause,omitempty"` - // Description missing in models - Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3,oneof" json:"ethernetpause,omitempty"` - // Description missing in models - Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3,oneof" json:"tcp,omitempty"` - // Description missing in models - Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3,oneof" json:"udp,omitempty"` - // Description missing in models - Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3,oneof" json:"gre,omitempty"` - // Description missing in models - Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3,oneof" json:"gtpv1,omitempty"` - // Description missing in models - Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3,oneof" json:"gtpv2,omitempty"` - // Description missing in models - Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3,oneof" json:"arp,omitempty"` - // Description missing in models - Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3,oneof" json:"icmp,omitempty"` - // Description missing in models - Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3,oneof" json:"icmpv6,omitempty"` - // Description missing in models - Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3,oneof" json:"ppp,omitempty"` - // Description missing in models - Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3,oneof" json:"igmpv1,omitempty"` - // Description missing in models - Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3,oneof" json:"mpls,omitempty"` + // IPv6 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowHeader) Reset() { - *x = FlowHeader{} +func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV6TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[144] + mi := &file_otg_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowHeader) String() string { +func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[144] +func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30605,185 +30376,302 @@ func (x *FlowHeader) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowHeader.ProtoReflect.Descriptor instead. -func (*FlowHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144} +// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{146} } -func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return FlowHeader_Choice_unspecified + return "" } -func (x *FlowHeader) GetCustom() *FlowCustom { - if x != nil { - return x.Custom - } - return nil -} +// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, +// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related +// specifications. +type DeviceRsvp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowHeader) GetEthernet() *FlowEthernet { - if x != nil { - return x.Ethernet - } - return nil + // List of IPv4 RSVP connected interfaces. At least one interface should be present + // for device connected to the DUT. For unconnected devices, this array must be empty. + Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress + // endpoints. + LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *FlowHeader) GetVlan() *FlowVlan { - if x != nil { - return x.Vlan +func (x *DeviceRsvp) Reset() { + *x = DeviceRsvp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowHeader) GetVxlan() *FlowVxlan { - if x != nil { - return x.Vxlan - } - return nil +func (x *DeviceRsvp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowHeader) GetIpv4() *FlowIpv4 { - if x != nil { - return x.Ipv4 +func (*DeviceRsvp) ProtoMessage() {} + +func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[147] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowHeader) GetIpv6() *FlowIpv6 { - if x != nil { - return x.Ipv6 - } - return nil +// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. +func (*DeviceRsvp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{147} } -func (x *FlowHeader) GetPfcpause() *FlowPfcPause { +func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { if x != nil { - return x.Pfcpause + return x.Ipv4Interfaces } return nil } -func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { +func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { if x != nil { - return x.Ethernetpause + return x.LspIpv4Interfaces } return nil } -func (x *FlowHeader) GetTcp() *FlowTcp { - if x != nil { - return x.Tcp +func (x *DeviceRsvp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowHeader) GetUdp() *FlowUdp { - if x != nil { - return x.Udp - } - return nil +// Configuration for RSVP Interface. +type RsvpIpv4Interface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The globally unique name of the IPv4 interface connected to the DUT. This name must + // match the name field of the ipv4_addresses on top which this RSVP interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + // IPv4 address of the RSVP neighbor on this interface. + // required = true + NeighborIp string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"` + // The user-defined label space start value. The LSPs for which this router acts as + // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end + // together defines this label-pool. + // default = 1000 + LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` + // The user-defined label space end value.The last label value that can be assigned + // to the LSPs for which this router acts as egress. + // default = 100000 + LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` + // Enables sending of Refresh Reduction as described in RFC2961. + // default = False + EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` + // The number of seconds between transmissions of successive Summary Refreshes. There + // is no specification specified maximum value. For clarity, setting the maximum to + // 1 hour. + // default = 30 + SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` + // Enables aggregration of different RSVP messages within a single PDU. + // default = False + SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` + // The number of milliseconds to wait after which RSVP will bundle different RSVP messages + // and transmit Bundle messages. + // default = 50 + BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` + // Enables sending of Hello Messages as per RFC3209. + // default = False + EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` + // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds + // at which successive Hello Messages are sent as per RFC3209. There is no specification + // specified maximum value. For clarity, setting the maximum to 1 hour. + // default = 9 + HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` + // The number of missed hellos after which the node should consider RSVP Neighbor to + // have timed out. There is no specification specified maximum value. Setting the maximum + // allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` } -func (x *FlowHeader) GetGre() *FlowGre { - if x != nil { - return x.Gre +func (x *RsvpIpv4Interface) Reset() { + *x = RsvpIpv4Interface{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { - if x != nil { - return x.Gtpv1 - } - return nil +func (x *RsvpIpv4Interface) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { - if x != nil { - return x.Gtpv2 +func (*RsvpIpv4Interface) ProtoMessage() {} + +func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[148] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowHeader) GetArp() *FlowArp { - if x != nil { - return x.Arp - } - return nil +// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{148} } -func (x *FlowHeader) GetIcmp() *FlowIcmp { +func (x *RsvpIpv4Interface) GetIpv4Name() string { if x != nil { - return x.Icmp + return x.Ipv4Name } - return nil + return "" } -func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { +func (x *RsvpIpv4Interface) GetNeighborIp() string { if x != nil { - return x.Icmpv6 + return x.NeighborIp } - return nil + return "" } -func (x *FlowHeader) GetPpp() *FlowPpp { - if x != nil { - return x.Ppp +func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { + if x != nil && x.LabelSpaceStart != nil { + return *x.LabelSpaceStart } - return nil + return 0 } -func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { - if x != nil { - return x.Igmpv1 +func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { + if x != nil && x.LabelSpaceEnd != nil { + return *x.LabelSpaceEnd } - return nil + return 0 } -func (x *FlowHeader) GetMpls() *FlowMpls { - if x != nil { - return x.Mpls +func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { + if x != nil && x.EnableRefreshReduction != nil { + return *x.EnableRefreshReduction } - return nil + return false } -// Custom packet header -type FlowCustom struct { +func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { + if x != nil && x.SummaryRefreshInterval != nil { + return *x.SummaryRefreshInterval + } + return 0 +} + +func (x *RsvpIpv4Interface) GetSendBundle() bool { + if x != nil && x.SendBundle != nil { + return *x.SendBundle + } + return false +} + +func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { + if x != nil && x.BundleThreshold != nil { + return *x.BundleThreshold + } + return 0 +} + +func (x *RsvpIpv4Interface) GetEnableHello() bool { + if x != nil && x.EnableHello != nil { + return *x.EnableHello + } + return false +} + +func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { + if x != nil && x.HelloInterval != nil { + return *x.HelloInterval + } + return 0 +} + +func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier + } + return 0 +} + +// Configuration for RSVP LSP IPv4 Interface. +type RsvpLspIpv4Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A custom packet header defined as a string of hex bytes. The string MUST contain - // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be - // discarded. This packet header can be used in multiple places in the packet. + // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP + // ingress and egress endpoint for the LSPs configured on this interface. This must + // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP + // interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true - Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits - // in a corresponding header field for metrics per each applicable value. - // These would appear as tagged metrics in corresponding flow metrics. - MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + // Contains properties of Tail(Egress) LSPs. + P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3,oneof" json:"p2p_egress_ipv4_lsps,omitempty"` + // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. + P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` } -func (x *FlowCustom) Reset() { - *x = FlowCustom{} +func (x *RsvpLspIpv4Interface) Reset() { + *x = RsvpLspIpv4Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[145] + mi := &file_otg_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowCustom) String() string { +func (x *RsvpLspIpv4Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustom) ProtoMessage() {} +func (*RsvpLspIpv4Interface) ProtoMessage() {} -func (x *FlowCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[145] +func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30794,63 +30682,88 @@ func (x *FlowCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. -func (*FlowCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{145} +// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{149} } -func (x *FlowCustom) GetBytes() string { +func (x *RsvpLspIpv4Interface) GetIpv4Name() string { if x != nil { - return x.Bytes + return x.Ipv4Name } return "" } -func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { +func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { if x != nil { - return x.MetricTags + return x.P2PEgressIpv4Lsps } return nil } -// Metric Tag can be used to enable tracking portion of or all bits -// in a corresponding header field for metrics per each applicable value. -// These would appear as tagged metrics in corresponding flow metrics. -type FlowCustomMetricTag struct { +func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { + if x != nil { + return x.P2PIngressIpv4Lsps + } + return nil +} + +// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable - // for configured offset and length inside corresponding header field + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field + // The time in seconds between successive transmissions of RESV Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed PATH refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // It determines how RSVP-TE enabled network devices set up reservations along the path + // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is + // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the + // style is chosen based on the value selected for this attribute. + // default = ReservationStyle.Enum.shared_explicit + ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` + // If enabled, a specific fixed label will be advertised by the egress or tail end for + // all Path messages received by this egress. This can be leveraged to advertise Explicit + // or Implicit null labels. + // default = False + EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` + // The fixed label value as advertised by egress in RESV message. Applicable only if + // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - + // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected + // to have a minimum value of 16. // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset - // of corresponding header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` } -func (x *FlowCustomMetricTag) Reset() { - *x = FlowCustomMetricTag{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[146] + mi := &file_otg_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowCustomMetricTag) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustomMetricTag) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} -func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[146] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30861,65 +30774,134 @@ func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. -func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{146} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{150} } -func (x *FlowCustomMetricTag) GetName() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { if x != nil { return x.Name } return "" } -func (x *FlowCustomMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } return 0 } -func (x *FlowCustomMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier } return 0 } -// Ethernet packet header -type FlowEthernet struct { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { + if x != nil && x.ReservationStyle != nil { + return *x.ReservationStyle + } + return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified +} + +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { + if x != nil && x.EnableFixedLabel != nil { + return *x.EnableFixedLabel + } + return false +} + +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { + if x != nil && x.FixedLabelValue != nil { + return *x.FixedLabelValue + } + return 0 +} + +// Configuration for an RSVP Ingress point-to-point LSP. +type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // IPv4 address of the remote endpoint of the LSP. + // required = true + RemoteAddress string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"` + // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. + // default = 1 + TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. + // default = 1 + LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The time in seconds between successive transmissions of PATH Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed RESV refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // The LSP id that will be used when creating a Make-Before-Break LSP when the active + // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is + // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. + // default = 2 + BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` + // The amount of delay in milliseconds that an implementation should wait for before + // switching traffic to the new LSP created after a Make-Before-Break is done on an + // LSP. The default value is 0 which means to switch immediately. An implementation + // should support a minimum delay value of at least 50ms . There is no specification + // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value + // is supplied which is lesser than the minimum delay value supported, a warning should + // be provided indicating that the minimum value of LSP switchover delay is automatically + // increased to the supported minimum value. This warning should be included in the + // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' + // Response. + // default = 0 + LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` + // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object + // in the Path Message sent for the LSP. + SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3,oneof" json:"session_attribute,omitempty"` + // This contains the values of the fields to be included in the TSPEC object in the + // Path Message sent for the LSP. + Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3,oneof" json:"tspec,omitempty"` + // This contains the values of the fields to be included in the FAST_REROUTE object + // in the Path Message sent for the LSP. + // This is an optional object . If this attribute is not included , the FAST_REROUTE + // object will not be included. + FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3,oneof" json:"fast_reroute,omitempty"` + // This contains the values of the fields to be included in the ERO object in the Path + // Message sent for the LSP. + // This is an optional object . If this attribute is not included , the ERO object will + // not be included. + Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3,oneof" json:"ero,omitempty"` } -func (x *FlowEthernet) Reset() { - *x = FlowEthernet{} +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[147] + mi := &file_otg_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowEthernet) String() string { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernet) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} -func (x *FlowEthernet) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[147] +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30930,148 +30912,177 @@ func (x *FlowEthernet) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. -func (*FlowEthernet) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{147} +// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{151} } -func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { if x != nil { - return x.Dst + return x.Name } - return nil + return "" } -func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { if x != nil { - return x.Src + return x.RemoteAddress } - return nil + return "" } -func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { - if x != nil { - return x.EtherType +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId } - return nil + return 0 } -func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { - if x != nil { - return x.PfcQueue +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId } - return nil -} - -// VLAN packet header -type FlowVlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - // Description missing in models - Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` - // Description missing in models - Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` - // Description missing in models - Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + return 0 } -func (x *FlowVlan) Reset() { - *x = FlowVlan{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[148] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } + return 0 } -func (x *FlowVlan) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier + } + return 0 } -func (*FlowVlan) ProtoMessage() {} - -func (x *FlowVlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[148] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { + if x != nil && x.BackupLspId != nil { + return *x.BackupLspId } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. -func (*FlowVlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{148} +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { + if x != nil && x.LspSwitchoverDelay != nil { + return *x.LspSwitchoverDelay + } + return 0 } -func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { if x != nil { - return x.Priority + return x.SessionAttribute } return nil } -func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { if x != nil { - return x.Cfi + return x.Tspec } return nil } -func (x *FlowVlan) GetId() *PatternFlowVlanId { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { if x != nil { - return x.Id + return x.FastReroute } return nil } -func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { if x != nil { - return x.Tpid + return x.Ero } return nil } -// VXLAN packet header -type FlowVxlan struct { +// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined +// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are +// defined in RFC4090 (Fast Reroute). +type RsvpSessionAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Description missing in models - Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` - // Description missing in models - Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` - // Description missing in models - Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE + // object in the Path Message for this LSP. + // default = True + AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` + // If auto_generate_session_name is set to 'false', then the value of this field is + // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message + // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP + // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. + // The maximum length of session name is 254 bytes. + SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the LSP should + // pre-empt existing LSP setup with certain Holding Priority if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // This flag permits transit routers to use a local repair mechanism which may result + // in violation of the explicit route object. When a fault is detected on an adjacent + // downstream link or node, a transit router can reroute traffic for fast service restoration. + // default = False + LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` + // This flag indicates that label information should be included when doing a route + // record. + // default = False + LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` + // This flag indicates that the tunnel ingress node may choose to reroute this tunnel + // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) + // Style when responding with a Resv message. + // default = False + SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along the protected LSP path that a backup path with a bandwidth guarantee is desired. + // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object + // is included in the PATH message. If a FAST_REROUTE object is present in the Path + // message, then the bandwidth specified therein is to be guaranteed. + // default = False + BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along a protected LSP path that it is desired to have a backup path that bypasses + // at least the next node of the protected LSP. + // default = False + NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` + // This is an optional object. If included the extended SESSION_ATTRIBUTE object is + // sent in the Path message containing + // the additional fields included in this object. This contains a set of three bitmaps + // using which further constraints can be + // set on the path calculated for the LSP based on the Admin Group settings in the IGP + // (e.g ISIS or OSPF interface). + ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3,oneof" json:"resource_affinities,omitempty"` } -func (x *FlowVxlan) Reset() { - *x = FlowVxlan{} +func (x *RsvpSessionAttribute) Reset() { + *x = RsvpSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[149] + mi := &file_otg_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowVxlan) String() string { +func (x *RsvpSessionAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowVxlan) ProtoMessage() {} +func (*RsvpSessionAttribute) ProtoMessage() {} -func (x *FlowVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[149] +func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31082,92 +31093,132 @@ func (x *FlowVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. -func (*FlowVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{149} +// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. +func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{152} } -func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { - if x != nil { - return x.Flags +func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { + if x != nil && x.AutoGenerateSessionName != nil { + return *x.AutoGenerateSessionName } - return nil + return false } -func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { - if x != nil { - return x.Reserved0 +func (x *RsvpSessionAttribute) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } - return nil + return "" } -func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { - if x != nil { - return x.Vni +func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return nil + return 0 } -func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { +func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority + } + return 0 +} + +func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { + if x != nil && x.LocalProtectionDesired != nil { + return *x.LocalProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { + if x != nil && x.LabelRecordingDesired != nil { + return *x.LabelRecordingDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { + if x != nil && x.SeStyleDesired != nil { + return *x.SeStyleDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { + if x != nil && x.BandwidthProtectionDesired != nil { + return *x.BandwidthProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { + if x != nil && x.NodeProtectionDesired != nil { + return *x.NodeProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { if x != nil { - return x.Reserved1 + return x.ResourceAffinities } return nil } -// IPv4 packet header -type FlowIpv4 struct { +// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is +// sent in the Path message containing +// the additional fields included in this object. This contains a set of three bitmaps +// using which further constraints can be +// set on the path calculated for the LSP based on the Admin Group settings in the IGP +// (e.g ISIS or OSPF interface). +type RsvpResourceAffinities struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` - // Description missing in models - Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - // Description missing in models - TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` - // Description missing in models - Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` - // Description missing in models - Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // Description missing in models - DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` - // Description missing in models - MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` - // Description missing in models - FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` - // Description missing in models - TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // Description missing in models - Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` - // Description missing in models - HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` - // Description missing in models - Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` } -func (x *FlowIpv4) Reset() { - *x = FlowIpv4{} +func (x *RsvpResourceAffinities) Reset() { + *x = RsvpResourceAffinities{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[150] + mi := &file_otg_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4) String() string { +func (x *RsvpResourceAffinities) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4) ProtoMessage() {} +func (*RsvpResourceAffinities) ProtoMessage() {} -func (x *FlowIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[150] +func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31178,143 +31229,201 @@ func (x *FlowIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. -func (*FlowIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{150} +// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. +func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{153} } -func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { - if x != nil { - return x.Version +func (x *RsvpResourceAffinities) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } - return nil + return "" } -func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { - if x != nil { - return x.HeaderLength +func (x *RsvpResourceAffinities) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return nil + return "" } -func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { - if x != nil { - return x.Priority +func (x *RsvpResourceAffinities) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll } - return nil + return "" } -func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { - if x != nil { - return x.TotalLength - } - return nil -} +// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these +// parameters is defined in RFC2215. +type RsvpTspec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { - if x != nil { - return x.Identification - } - return nil + // The rate of the traffic to be carried in this LSP in bytes per second. This is part + // of the Token Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` + // The depth of the token bucket in bytes used to specify the Token Bucket characteristics + // of the traffic to be carried in the LSP. This is part of the Token Bucket specification + // defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` + // The peak data rate of the traffic in bytes per second used to specify the Token Bucket + // characteristics of the traffic to be carried in the LSP. This is part of the Token + // Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` + // Specifies the minium length of packet frames that will be policed. + // default = 0 + MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` + // Specifies the maximum length of packet frames that will be policed. + // default = 0 + MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` } -func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { - if x != nil { - return x.Reserved +func (x *RsvpTspec) Reset() { + *x = RsvpTspec{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { - if x != nil { - return x.DontFragment - } - return nil +func (x *RsvpTspec) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { - if x != nil { - return x.MoreFragments +func (*RsvpTspec) ProtoMessage() {} + +func (x *RsvpTspec) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[154] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { - if x != nil { - return x.FragmentOffset - } - return nil +// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. +func (*RsvpTspec) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{154} } -func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { - if x != nil { - return x.TimeToLive +func (x *RsvpTspec) GetTokenBucketRate() float32 { + if x != nil && x.TokenBucketRate != nil { + return *x.TokenBucketRate } - return nil + return 0 } -func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { - if x != nil { - return x.Protocol +func (x *RsvpTspec) GetTokenBucketSize() float32 { + if x != nil && x.TokenBucketSize != nil { + return *x.TokenBucketSize } - return nil + return 0 } -func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { - if x != nil { - return x.HeaderChecksum +func (x *RsvpTspec) GetPeakDataRate() float32 { + if x != nil && x.PeakDataRate != nil { + return *x.PeakDataRate } - return nil + return 0 } -func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { - if x != nil { - return x.Src +func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { + if x != nil && x.MinimumPolicedUnit != nil { + return *x.MinimumPolicedUnit } - return nil + return 0 } -func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { - if x != nil { - return x.Dst +func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { + if x != nil && x.MaximumPolicedUnit != nil { + return *x.MaximumPolicedUnit } - return nil + return 0 } -// A container for ipv4 raw, tos, dscp ip priorities. -type FlowIpv4Priority struct { +// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages +// as defined in RFC4090. +type RsvpFastReroute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.dscp - Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3,oneof" json:"raw,omitempty"` - // Description missing in models - Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3,oneof" json:"tos,omitempty"` - // Description missing in models - Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3,oneof" json:"dscp,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the backup + // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While + // setting up a backup LSP, preemption of existing LSP can happen if resource limitation + // is encountered (e.g bandwidth availability). + // default = 7 + SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP set up with this + // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen + // if resource limitation is encountered (e.g bandwidth availability). + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // Specifies the value of the Hop Limit field. This controls the maximum number of hops + // the LSP should traverse to reach the LSP end-point. + // default = 3 + HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, + // in bytes per second, as desired for the LSP. + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // Requests protection via the one-to-one backup method. + // default = False + OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` + // Requests protection via the facility backup method. + // default = False + FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` } -func (x *FlowIpv4Priority) Reset() { - *x = FlowIpv4Priority{} +func (x *RsvpFastReroute) Reset() { + *x = RsvpFastReroute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[151] + mi := &file_otg_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Priority) String() string { +func (x *RsvpFastReroute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority) ProtoMessage() {} +func (*RsvpFastReroute) ProtoMessage() {} -func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[151] +func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31325,134 +31434,115 @@ func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151} +// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. +func (*RsvpFastReroute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{155} } -func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpFastReroute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return FlowIpv4Priority_Choice_unspecified + return 0 } -func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { - if x != nil { - return x.Raw +func (x *RsvpFastReroute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority } - return nil + return 0 } -func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { - if x != nil { - return x.Tos +func (x *RsvpFastReroute) GetHopLimit() uint32 { + if x != nil && x.HopLimit != nil { + return *x.HopLimit } - return nil + return 0 } -func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { - if x != nil { - return x.Dscp +func (x *RsvpFastReroute) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return nil -} - -// Differentiated services code point (DSCP) packet field. -type FlowIpv4Dscp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3,oneof" json:"phb,omitempty"` - // Description missing in models - Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3,oneof" json:"ecn,omitempty"` + return 0 } -func (x *FlowIpv4Dscp) Reset() { - *x = FlowIpv4Dscp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpFastReroute) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } + return "" } -func (x *FlowIpv4Dscp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowIpv4Dscp) ProtoMessage() {} - -func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[152] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpFastReroute) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return mi.MessageOf(x) + return "" } -// Deprecated: Use FlowIpv4Dscp.ProtoReflect.Descriptor instead. -func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{152} +func (x *RsvpFastReroute) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll + } + return "" } -func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { - if x != nil { - return x.Phb +func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { + if x != nil && x.OneToOneBackupDesired != nil { + return *x.OneToOneBackupDesired } - return nil + return false } -func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { - if x != nil { - return x.Ecn +func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { + if x != nil && x.FacilityBackupDesired != nil { + return *x.FacilityBackupDesired } - return nil + return false } -// Type of service (TOS) packet field. -type FlowIpv4Tos struct { +// Configuration for the optional RSVP-TE explicit route object(ERO) object included +// in Path Messages. +type RsvpEro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3,oneof" json:"precedence,omitempty"` - // Description missing in models - Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` - // Description missing in models - Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3,oneof" json:"throughput,omitempty"` - // Description missing in models - Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3,oneof" json:"reliability,omitempty"` - // Description missing in models - Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3,oneof" json:"monetary,omitempty"` - // Description missing in models - Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + // Determines whether the IP address of the RSVP neighbor should be added as an ERO + // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict + // hop. + // default = PrependNeighborIp.Enum.prepend_loose + PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` + // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set + // this value as the prefix length of the ERO sub-object containing egress IP address. + // + // default = 32 + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate + // hops to be traversed by the LSP while being forwarded towards the egress endpoint. + // These sub-objects are included after the optional sub-object containing IP address + // of egress endpoint of the LSP (when present). + Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` } -func (x *FlowIpv4Tos) Reset() { - *x = FlowIpv4Tos{} +func (x *RsvpEro) Reset() { + *x = RsvpEro{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[153] + mi := &file_otg_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Tos) String() string { +func (x *RsvpEro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Tos) ProtoMessage() {} +func (*RsvpEro) ProtoMessage() {} -func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[153] +func (x *RsvpEro) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31463,94 +31553,76 @@ func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. -func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{153} +// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. +func (*RsvpEro) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{156} } -func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { - if x != nil { - return x.Precedence +func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { + if x != nil && x.PrependNeighborIp != nil { + return *x.PrependNeighborIp } - return nil + return RsvpEro_PrependNeighborIp_unspecified } -func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { - if x != nil { - return x.Delay - } - return nil -} - -func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { - if x != nil { - return x.Throughput - } - return nil -} - -func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { - if x != nil { - return x.Reliability - } - return nil -} - -func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { - if x != nil { - return x.Monetary +func (x *RsvpEro) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { +func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { if x != nil { - return x.Unused + return x.Subobjects } return nil } -// IPv6 packet header -type FlowIpv6 struct { +// Configuration for the ERO sub-object. +type RsvpEroSubobject struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` - // Description missing in models - FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` - // Description missing in models - PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` - // Description missing in models - NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` - // Description missing in models - HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` - // Description missing in models - Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // The type of the ERO sub-object, one of IPv4 Address or AS Number. + // default = Type.Enum.ipv4 + Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` + // IPv4 address that this LSP should traverse through. This field is applicable only + // if the value of 'type' is set to 'ipv4'. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable + // only if the value of 'type' is set to 'ipv4'. + // default = 32 + PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Autonomous System number to be set in the ERO sub-object that this LSP should traverse + // through. This field is applicable only if the value of 'type' is set to 'as_number'. + // Note that as per RFC3209, 4-byte AS encoding is not supported. + // default = 0 + AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // The hop type of the ERO sub-object, one of Strict or Loose. + // default = HopType.Enum.loose + HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` } -func (x *FlowIpv6) Reset() { - *x = FlowIpv6{} +func (x *RsvpEroSubobject) Reset() { + *x = RsvpEroSubobject{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[154] + mi := &file_otg_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv6) String() string { +func (x *RsvpEroSubobject) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv6) ProtoMessage() {} +func (*RsvpEroSubobject) ProtoMessage() {} -func (x *FlowIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[154] +func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31561,118 +31633,115 @@ func (x *FlowIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. -func (*FlowIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{154} -} - -func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { - if x != nil { - return x.TrafficClass - } - return nil -} - -func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { - if x != nil { - return x.FlowLabel - } - return nil +// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157} } -func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { - if x != nil { - return x.PayloadLength +func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return nil + return RsvpEroSubobject_Type_unspecified } -func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { - if x != nil { - return x.NextHeader +func (x *RsvpEroSubobject) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return nil + return "" } -func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { - if x != nil { - return x.HopLimit +func (x *RsvpEroSubobject) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { - if x != nil { - return x.Src +func (x *RsvpEroSubobject) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return nil + return 0 } -func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { - if x != nil { - return x.Dst +func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { + if x != nil && x.HopType != nil { + return *x.HopType } - return nil + return RsvpEroSubobject_HopType_unspecified } -// IEEE 802.1Qbb PFC Pause packet header. -type FlowPfcPause struct { +// A high level data plane traffic flow. +type Flow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` - // Description missing in models - ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3,oneof" json:"class_enable_vector,omitempty"` - // Description missing in models - PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3,oneof" json:"pause_class_0,omitempty"` - // Description missing in models - PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3,oneof" json:"pause_class_1,omitempty"` - // Description missing in models - PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3,oneof" json:"pause_class_2,omitempty"` - // Description missing in models - PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3,oneof" json:"pause_class_3,omitempty"` - // Description missing in models - PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3,oneof" json:"pause_class_4,omitempty"` - // Description missing in models - PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3,oneof" json:"pause_class_5,omitempty"` - // Description missing in models - PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3,oneof" json:"pause_class_6,omitempty"` - // Description missing in models - PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3,oneof" json:"pause_class_7,omitempty"` + // The transmit and receive endpoints. + // required = true + TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is transmitted + // by traffic-generator port. + // + // The order of protocol headers assigned to the list is the + // order they will appear on the wire. + // + // In the case of an empty list the keyword/value of minItems: 1 + // indicates that an implementation MUST provide at least one + // Flow.Header object. + // + // The default value for the Flow.Header choice property is ethernet + // which will result in an implementation by default providing at least + // one ethernet packet header. + Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is received + // by traffic-generator port. + // + // For all protocol headers, only the `metric_tags` property is configurable. + EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` + // The size of the packets. + Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + // The transmit rate of the packets. + Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + // The transmit duration of the packets. + Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3,oneof" json:"duration,omitempty"` + // Flow metrics. + Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3,oneof" json:"metrics,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` } -func (x *FlowPfcPause) Reset() { - *x = FlowPfcPause{} +func (x *Flow) Reset() { + *x = Flow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[155] + mi := &file_otg_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPfcPause) String() string { +func (x *Flow) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPfcPause) ProtoMessage() {} +func (*Flow) ProtoMessage() {} -func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[155] +func (x *Flow) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31683,137 +31752,100 @@ func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. -func (*FlowPfcPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{155} -} - -func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { - if x != nil { - return x.Src - } - return nil -} - -func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { - if x != nil { - return x.EtherType - } - return nil -} - -func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { - if x != nil { - return x.ControlOpCode - } - return nil -} - -func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { - if x != nil { - return x.ClassEnableVector - } - return nil +// Deprecated: Use Flow.ProtoReflect.Descriptor instead. +func (*Flow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{158} } -func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { +func (x *Flow) GetTxRx() *FlowTxRx { if x != nil { - return x.PauseClass_0 + return x.TxRx } return nil } -func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { +func (x *Flow) GetPacket() []*FlowHeader { if x != nil { - return x.PauseClass_1 + return x.Packet } return nil } -func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { +func (x *Flow) GetEgressPacket() []*FlowHeader { if x != nil { - return x.PauseClass_2 + return x.EgressPacket } return nil } -func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { +func (x *Flow) GetSize() *FlowSize { if x != nil { - return x.PauseClass_3 + return x.Size } return nil } -func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { +func (x *Flow) GetRate() *FlowRate { if x != nil { - return x.PauseClass_4 + return x.Rate } return nil } -func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { +func (x *Flow) GetDuration() *FlowDuration { if x != nil { - return x.PauseClass_5 + return x.Duration } return nil } -func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { +func (x *Flow) GetMetrics() *FlowMetrics { if x != nil { - return x.PauseClass_6 + return x.Metrics } return nil } -func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { +func (x *Flow) GetName() string { if x != nil { - return x.PauseClass_7 + return x.Name } - return nil + return "" } -// IEEE 802.3x global ethernet pause packet header -type FlowEthernetPause struct { +// A container for different types of transmit and receive +// endpoint containers. +type FlowTxRx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The type of transmit and receive container used by the flow. + // default = Choice.Enum.port + Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` // Description missing in models - Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3,oneof" json:"time,omitempty"` + Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3,oneof" json:"device,omitempty"` } -func (x *FlowEthernetPause) Reset() { - *x = FlowEthernetPause{} +func (x *FlowTxRx) Reset() { + *x = FlowTxRx{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[156] + mi := &file_otg_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowEthernetPause) String() string { +func (x *FlowTxRx) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernetPause) ProtoMessage() {} +func (*FlowTxRx) ProtoMessage() {} -func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[156] +func (x *FlowTxRx) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31824,101 +31856,99 @@ func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. -func (*FlowEthernetPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{156} -} - -func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { - if x != nil { - return x.Src - } - return nil +// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. +func (*FlowTxRx) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159} } -func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { - if x != nil { - return x.EtherType +func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowTxRx_Choice_unspecified } -func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { +func (x *FlowTxRx) GetPort() *FlowPort { if x != nil { - return x.ControlOpCode + return x.Port } return nil } -func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { +func (x *FlowTxRx) GetDevice() *FlowRouter { if x != nil { - return x.Time + return x.Device } return nil } -// TCP packet header -type FlowTcp struct { +// A container for a transmit port and 0..n intended receive ports. +// When assigning this container to a flow the flows's +// packet headers will not be populated with any address resolution +// information such as source and/or destination addresses. +// For example Flow.Ethernet dst mac address values will be defaulted to 0. +// For full control over the Flow.properties.packet header contents use this +// container. +type FlowPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` - // Description missing in models - SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3,oneof" json:"seq_num,omitempty"` - // Description missing in models - AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3,oneof" json:"ack_num,omitempty"` - // Description missing in models - DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3,oneof" json:"data_offset,omitempty"` - // Description missing in models - EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3,oneof" json:"ecn_ns,omitempty"` - // Description missing in models - EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3,oneof" json:"ecn_cwr,omitempty"` - // Description missing in models - EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3,oneof" json:"ecn_echo,omitempty"` - // Description missing in models - CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3,oneof" json:"ctl_urg,omitempty"` - // Description missing in models - CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3,oneof" json:"ctl_ack,omitempty"` - // Description missing in models - CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3,oneof" json:"ctl_psh,omitempty"` - // Description missing in models - CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3,oneof" json:"ctl_rst,omitempty"` - // Description missing in models - CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3,oneof" json:"ctl_syn,omitempty"` - // Description missing in models - CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3,oneof" json:"ctl_fin,omitempty"` - // Description missing in models - Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3,oneof" json:"window,omitempty"` + // The unique name of a port that is the transmit port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // required = true + TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` + // Deprecated: This property is deprecated in favor of property rx_names + // + // Deprecated: This property is deprecated in favor of property rx_names + // + // The unique name of a port that is the intended receive port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Unique name of ports or lags that are intended receive endpoints. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowTcp) Reset() { - *x = FlowTcp{} +func (x *FlowPort) Reset() { + *x = FlowPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[157] + mi := &file_otg_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTcp) String() string { +func (x *FlowPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTcp) ProtoMessage() {} +func (*FlowPort) ProtoMessage() {} -func (x *FlowTcp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[157] +func (x *FlowPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31929,149 +31959,149 @@ func (x *FlowTcp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. -func (*FlowTcp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{157} +// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. +func (*FlowPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{160} } -func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { +func (x *FlowPort) GetTxName() string { if x != nil { - return x.SrcPort + return x.TxName } - return nil + return "" } -func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { - if x != nil { - return x.DstPort +func (x *FlowPort) GetRxName() string { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return "" } -func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { +func (x *FlowPort) GetRxNames() []string { if x != nil { - return x.SeqNum + return x.RxNames } return nil } -func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { - if x != nil { - return x.AckNum - } - return nil -} +// A container for declaring a map of 1..n transmit devices to 1..n receive devices. +// This allows for a single flow to have different tx to rx device flows such as a +// single one to one map or a many to many map. +type FlowRouter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { - if x != nil { - return x.DataOffset - } - return nil -} - -func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { - if x != nil { - return x.EcnNs - } - return nil -} - -func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { - if x != nil { - return x.EcnCwr - } - return nil -} - -func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { - if x != nil { - return x.EcnEcho - } - return nil -} - -func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { - if x != nil { - return x.CtlUrg - } - return nil -} - -func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { - if x != nil { - return x.CtlAck - } - return nil -} - -func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { - if x != nil { - return x.CtlPsh - } - return nil -} - -func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { - if x != nil { - return x.CtlRst - } - return nil -} - -func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { - if x != nil { - return x.CtlSyn - } - return nil -} - -func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { - if x != nil { - return x.CtlFin - } - return nil -} - -func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { - if x != nil { - return x.Window - } - return nil -} - -// UDP packet header -type FlowUdp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` - // Description missing in models - Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3,oneof" json:"length,omitempty"` - // Description missing in models - Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Determines the intent of creating traffic sub-flow(s) between the device + // endpoints, from the entities of tx_names to the entities of rx_names + // + // to derive how auto packet fields can be populated with + // the actual value(s) by the implementation. + // + // The one_to_one mode creates traffic sub-flow(s) between each device endpoint + // pair in + // tx_names to rx_names by index. + // The length of tx_names and rx_names MUST be the same. + // The same device name can be repeated multiple times in tx_names or rx_names, in any + // order to create desired meshing between device(s). + // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would + // be generated (each pair representing a traffic sub-flow). + // + // The mesh mode creates traffic sub-flow(s) between each value in tx_names to + // every value in rx_names, forming the device endpoint pair(s). + // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs + // would be 2x3=6. + // + // A generated device endpoint pair with same device endpoint name for both transmit + // & receive device endpoint MUST raise an error. + // + // Packet fields of type auto would be populated with one value for each device + // endpoint pair (representing the traffic sub-flow). + // The value would be determined considering transmit & receive device of the sub-flow. + // And the sequence of the populated value(s) + // would be in the order of generated device endpoint pair(s). + // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), + // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then + // the auto field would be replaced by the implementation with a sequence of + // 2 values, [v1,v2] where + // v1 is determined using context (d1,d3) and v2 using context (d2,d3). + // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... + // for ethernet.dst field. Any non-auto packet fields + // should be configured accordingly. For example, non-auto packet field ethernet.src + // can be configured with values [u1, u2], where + // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. + // Then packets on the wire will contain correct value pairs + // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. + // default = Mode.Enum.mesh + Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowUdp) Reset() { - *x = FlowUdp{} +func (x *FlowRouter) Reset() { + *x = FlowRouter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[158] + mi := &file_otg_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowUdp) String() string { +func (x *FlowRouter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowUdp) ProtoMessage() {} +func (*FlowRouter) ProtoMessage() {} -func (x *FlowUdp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[158] +func (x *FlowRouter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32082,76 +32112,99 @@ func (x *FlowUdp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. -func (*FlowUdp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{158} -} - -func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { - if x != nil { - return x.SrcPort - } - return nil +// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. +func (*FlowRouter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161} } -func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { - if x != nil { - return x.DstPort +func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode } - return nil + return FlowRouter_Mode_unspecified } -func (x *FlowUdp) GetLength() *PatternFlowUdpLength { +func (x *FlowRouter) GetTxNames() []string { if x != nil { - return x.Length + return x.TxNames } return nil } -func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { +func (x *FlowRouter) GetRxNames() []string { if x != nil { - return x.Checksum + return x.RxNames } return nil } -// Standard GRE packet header (RFC2784) -type FlowGre struct { +// Configuration for all traffic packet headers +type FlowHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The available types of flow headers. If one is not provided the + // default ethernet packet header MUST be provided. + // default = Choice.Enum.ethernet + Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3,oneof" json:"checksum_present,omitempty"` + Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` // Description missing in models - Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` // Description missing in models - Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` + Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` // Description missing in models - Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` // Description missing in models - Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` // Description missing in models - Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + // Description missing in models + Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3,oneof" json:"pfcpause,omitempty"` + // Description missing in models + Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3,oneof" json:"ethernetpause,omitempty"` + // Description missing in models + Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3,oneof" json:"tcp,omitempty"` + // Description missing in models + Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3,oneof" json:"udp,omitempty"` + // Description missing in models + Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3,oneof" json:"gre,omitempty"` + // Description missing in models + Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3,oneof" json:"gtpv1,omitempty"` + // Description missing in models + Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3,oneof" json:"gtpv2,omitempty"` + // Description missing in models + Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3,oneof" json:"arp,omitempty"` + // Description missing in models + Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3,oneof" json:"icmp,omitempty"` + // Description missing in models + Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3,oneof" json:"icmpv6,omitempty"` + // Description missing in models + Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3,oneof" json:"ppp,omitempty"` + // Description missing in models + Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3,oneof" json:"igmpv1,omitempty"` + // Description missing in models + Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3,oneof" json:"mpls,omitempty"` } -func (x *FlowGre) Reset() { - *x = FlowGre{} +func (x *FlowHeader) Reset() { + *x = FlowHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[159] + mi := &file_otg_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGre) String() string { +func (x *FlowHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGre) ProtoMessage() {} +func (*FlowHeader) ProtoMessage() {} -func (x *FlowGre) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[159] +func (x *FlowHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32162,241 +32215,185 @@ func (x *FlowGre) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. -func (*FlowGre) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{159} +// Deprecated: Use FlowHeader.ProtoReflect.Descriptor instead. +func (*FlowHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162} } -func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { - if x != nil { - return x.ChecksumPresent +func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowHeader_Choice_unspecified } -func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { +func (x *FlowHeader) GetCustom() *FlowCustom { if x != nil { - return x.Reserved0 + return x.Custom } return nil } -func (x *FlowGre) GetVersion() *PatternFlowGreVersion { +func (x *FlowHeader) GetEthernet() *FlowEthernet { if x != nil { - return x.Version + return x.Ethernet } return nil } -func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { +func (x *FlowHeader) GetVlan() *FlowVlan { if x != nil { - return x.Protocol + return x.Vlan } return nil } -func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { +func (x *FlowHeader) GetVxlan() *FlowVxlan { if x != nil { - return x.Checksum + return x.Vxlan } return nil } -func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { +func (x *FlowHeader) GetIpv4() *FlowIpv4 { if x != nil { - return x.Reserved1 + return x.Ipv4 } return nil } -// GTPv1 packet header -type FlowGtpv1 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` - // Description missing in models - Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // Description missing in models - EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3,oneof" json:"e_flag,omitempty"` - // Description missing in models - SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // Description missing in models - PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3,oneof" json:"pn_flag,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3,oneof" json:"teid,omitempty"` - // Description missing in models - SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3,oneof" json:"squence_number,omitempty"` - // Description missing in models - NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3,oneof" json:"n_pdu_number,omitempty"` - // Description missing in models - NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3,oneof" json:"next_extension_header_type,omitempty"` - // A list of optional extension headers. - ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` -} - -func (x *FlowGtpv1) Reset() { - *x = FlowGtpv1{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FlowGtpv1) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowGtpv1) ProtoMessage() {} - -func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[160] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowHeader) GetIpv6() *FlowIpv6 { + if x != nil { + return x.Ipv6 } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. -func (*FlowGtpv1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{160} + return nil } -func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { +func (x *FlowHeader) GetPfcpause() *FlowPfcPause { if x != nil { - return x.Version + return x.Pfcpause } return nil } -func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { +func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { if x != nil { - return x.ProtocolType + return x.Ethernetpause } return nil } -func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { +func (x *FlowHeader) GetTcp() *FlowTcp { if x != nil { - return x.Reserved + return x.Tcp } return nil } -func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { +func (x *FlowHeader) GetUdp() *FlowUdp { if x != nil { - return x.EFlag + return x.Udp } return nil } -func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { +func (x *FlowHeader) GetGre() *FlowGre { if x != nil { - return x.SFlag + return x.Gre } return nil } -func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { +func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { if x != nil { - return x.PnFlag + return x.Gtpv1 } return nil } -func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { +func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { if x != nil { - return x.MessageType + return x.Gtpv2 } return nil } -func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { +func (x *FlowHeader) GetArp() *FlowArp { if x != nil { - return x.MessageLength + return x.Arp } return nil } -func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { +func (x *FlowHeader) GetIcmp() *FlowIcmp { if x != nil { - return x.Teid + return x.Icmp } return nil } -func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { +func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { if x != nil { - return x.SquenceNumber + return x.Icmpv6 } return nil } -func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { +func (x *FlowHeader) GetPpp() *FlowPpp { if x != nil { - return x.NPduNumber + return x.Ppp } return nil } -func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { +func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { if x != nil { - return x.NextExtensionHeaderType + return x.Igmpv1 } return nil } -func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { +func (x *FlowHeader) GetMpls() *FlowMpls { if x != nil { - return x.ExtensionHeaders + return x.Mpls } return nil } -// Description missing in models -type FlowGtpExtension struct { +// Custom packet header +type FlowCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3,oneof" json:"extension_length,omitempty"` - // Description missing in models - Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"` - // Description missing in models - NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3,oneof" json:"next_extension_header,omitempty"` + // A custom packet header defined as a string of hex bytes. The string MUST contain + // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be + // discarded. This packet header can be used in multiple places in the packet. + // required = true + Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits + // in a corresponding header field for metrics per each applicable value. + // These would appear as tagged metrics in corresponding flow metrics. + MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *FlowGtpExtension) Reset() { - *x = FlowGtpExtension{} +func (x *FlowCustom) Reset() { + *x = FlowCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[161] + mi := &file_otg_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGtpExtension) String() string { +func (x *FlowCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpExtension) ProtoMessage() {} +func (*FlowCustom) ProtoMessage() {} -func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[161] +func (x *FlowCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32407,75 +32404,63 @@ func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. -func (*FlowGtpExtension) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{161} -} - -func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { - if x != nil { - return x.ExtensionLength - } - return nil +// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. +func (*FlowCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{163} } -func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { +func (x *FlowCustom) GetBytes() string { if x != nil { - return x.Contents + return x.Bytes } - return nil + return "" } -func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { +func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { if x != nil { - return x.NextExtensionHeader + return x.MetricTags } return nil } -// GTPv2 packet header -type FlowGtpv2 struct { +// Metric Tag can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. +type FlowCustomMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3,oneof" json:"piggybacking_flag,omitempty"` - // Description missing in models - TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3,oneof" json:"teid_flag,omitempty"` - // Description missing in models - Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3,oneof" json:"spare1,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3,oneof" json:"teid,omitempty"` - // Description missing in models - SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` - // Description missing in models - Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3,oneof" json:"spare2,omitempty"` + // Name used to identify the metrics associated with the values applicable + // for configured offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset + // of corresponding header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *FlowGtpv2) Reset() { - *x = FlowGtpv2{} +func (x *FlowCustomMetricTag) Reset() { + *x = FlowCustomMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[162] + mi := &file_otg_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGtpv2) String() string { +func (x *FlowCustomMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpv2) ProtoMessage() {} +func (*FlowCustomMetricTag) ProtoMessage() {} -func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[162] +func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32486,117 +32471,141 @@ func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. -func (*FlowGtpv2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162} +// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. +func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{164} } -func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { +func (x *FlowCustomMetricTag) GetName() string { if x != nil { - return x.Version + return x.Name } - return nil + return "" } -func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { - if x != nil { - return x.PiggybackingFlag +func (x *FlowCustomMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return nil + return 0 } -func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { - if x != nil { - return x.TeidFlag +func (x *FlowCustomMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { - if x != nil { - return x.Spare1 +// Ethernet packet header +type FlowEthernet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // Description missing in models + Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + // Description missing in models + PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` +} + +func (x *FlowEthernet) Reset() { + *x = FlowEthernet{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { - if x != nil { - return x.MessageType +func (x *FlowEthernet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowEthernet) ProtoMessage() {} + +func (x *FlowEthernet) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[165] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { +// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. +func (*FlowEthernet) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{165} +} + +func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { if x != nil { - return x.MessageLength + return x.Dst } return nil } -func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { +func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { if x != nil { - return x.Teid + return x.Src } return nil } -func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { +func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { if x != nil { - return x.SequenceNumber + return x.EtherType } return nil } -func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { +func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { if x != nil { - return x.Spare2 + return x.PfcQueue } return nil } -// ARP packet header -type FlowArp struct { +// VLAN packet header +type FlowVlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3,oneof" json:"hardware_type,omitempty"` - // Description missing in models - ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` - // Description missing in models - HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3,oneof" json:"hardware_length,omitempty"` - // Description missing in models - ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3,oneof" json:"protocol_length,omitempty"` - // Description missing in models - Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3,oneof" json:"operation,omitempty"` - // Description missing in models - SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3,oneof" json:"sender_hardware_addr,omitempty"` + Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` // Description missing in models - SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3,oneof" json:"sender_protocol_addr,omitempty"` + Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` // Description missing in models - TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3,oneof" json:"target_hardware_addr,omitempty"` + Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` // Description missing in models - TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3,oneof" json:"target_protocol_addr,omitempty"` + Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` } -func (x *FlowArp) Reset() { - *x = FlowArp{} +func (x *FlowVlan) Reset() { + *x = FlowVlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[163] + mi := &file_otg_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowArp) String() string { +func (x *FlowVlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowArp) ProtoMessage() {} +func (*FlowVlan) ProtoMessage() {} -func (x *FlowArp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[163] +func (x *FlowVlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32607,104 +32616,72 @@ func (x *FlowArp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. -func (*FlowArp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{163} -} - -func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { - if x != nil { - return x.HardwareType - } - return nil -} - -func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { - if x != nil { - return x.ProtocolType - } - return nil -} - -func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { - if x != nil { - return x.HardwareLength - } - return nil -} - -func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { - if x != nil { - return x.ProtocolLength - } - return nil -} - -func (x *FlowArp) GetOperation() *PatternFlowArpOperation { - if x != nil { - return x.Operation - } - return nil +// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. +func (*FlowVlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{166} } -func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { +func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { if x != nil { - return x.SenderHardwareAddr + return x.Priority } return nil } -func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { +func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { if x != nil { - return x.SenderProtocolAddr + return x.Cfi } return nil } -func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { +func (x *FlowVlan) GetId() *PatternFlowVlanId { if x != nil { - return x.TargetHardwareAddr + return x.Id } return nil } -func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { +func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { if x != nil { - return x.TargetProtocolAddr + return x.Tpid } return nil } -// ICMP packet header -type FlowIcmp struct { +// VXLAN packet header +type FlowVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` + Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // Description missing in models - Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` + Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + // Description missing in models + Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` + // Description missing in models + Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` } -func (x *FlowIcmp) Reset() { - *x = FlowIcmp{} +func (x *FlowVxlan) Reset() { + *x = FlowVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[164] + mi := &file_otg_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmp) String() string { +func (x *FlowVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp) ProtoMessage() {} +func (*FlowVxlan) ProtoMessage() {} -func (x *FlowIcmp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[164] +func (x *FlowVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32715,60 +32692,92 @@ func (x *FlowIcmp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. -func (*FlowIcmp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164} +// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. +func (*FlowVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{167} } -func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { + if x != nil { + return x.Flags } - return FlowIcmp_Choice_unspecified + return nil } -func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { +func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { if x != nil { - return x.Echo + return x.Reserved0 } return nil } -// Packet Header for ICMP echo request -type FlowIcmpEcho struct { +func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { + if x != nil { + return x.Vni + } + return nil +} + +func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { + if x != nil { + return x.Reserved1 + } + return nil +} + +// IPv4 packet header +type FlowIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` + // Description missing in models + Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Description missing in models + DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` + // Description missing in models + MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` + // Description missing in models + FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` + // Description missing in models + TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // Description missing in models + Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` + // Description missing in models + Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` } -func (x *FlowIcmpEcho) Reset() { - *x = FlowIcmpEcho{} +func (x *FlowIpv4) Reset() { + *x = FlowIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[165] + mi := &file_otg_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpEcho) String() string { +func (x *FlowIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpEcho) ProtoMessage() {} +func (*FlowIpv4) ProtoMessage() {} -func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[165] +func (x *FlowIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32779,140 +32788,143 @@ func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. -func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{165} +// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. +func (*FlowIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{168} } -func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { +func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { if x != nil { - return x.Type + return x.Version } return nil } -func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { +func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { if x != nil { - return x.Code + return x.HeaderLength } return nil } -func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { +func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { if x != nil { - return x.Checksum + return x.Priority } return nil } -func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { +func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { if x != nil { - return x.Identifier + return x.TotalLength } return nil } -func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { +func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { if x != nil { - return x.SequenceNumber + return x.Identification } return nil } -// ICMPv6 packet header -type FlowIcmpv6 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { + if x != nil { + return x.Reserved + } + return nil +} - // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` +func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { + if x != nil { + return x.DontFragment + } + return nil } -func (x *FlowIcmpv6) Reset() { - *x = FlowIcmpv6{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[166] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { + if x != nil { + return x.MoreFragments } + return nil } -func (x *FlowIcmpv6) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { + if x != nil { + return x.FragmentOffset + } + return nil } -func (*FlowIcmpv6) ProtoMessage() {} +func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { + if x != nil { + return x.TimeToLive + } + return nil +} -func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[166] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { + if x != nil { + return x.Protocol } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166} +func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { + if x != nil { + return x.HeaderChecksum + } + return nil } -func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { + if x != nil { + return x.Src } - return FlowIcmpv6_Choice_unspecified + return nil } -func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { +func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { if x != nil { - return x.Echo + return x.Dst } return nil } -// Packet Header for ICMPv6 Echo -type FlowIcmpv6Echo struct { +// A container for ipv4 raw, tos, dscp ip priorities. +type FlowIpv4Priority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` - // Description missing in models - Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // default = Choice.Enum.dscp + Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3,oneof" json:"raw,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3,oneof" json:"tos,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3,oneof" json:"dscp,omitempty"` } -func (x *FlowIcmpv6Echo) Reset() { - *x = FlowIcmpv6Echo{} +func (x *FlowIpv4Priority) Reset() { + *x = FlowIpv4Priority{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[167] + mi := &file_otg_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpv6Echo) String() string { +func (x *FlowIpv4Priority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6Echo) ProtoMessage() {} +func (*FlowIpv4Priority) ProtoMessage() {} -func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[167] +func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32923,77 +32935,68 @@ func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{167} -} - -func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { - if x != nil { - return x.Type - } - return nil +// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169} } -func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { - if x != nil { - return x.Code +func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIpv4Priority_Choice_unspecified } -func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { +func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { if x != nil { - return x.Identifier + return x.Raw } return nil } -func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { +func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { if x != nil { - return x.SequenceNumber + return x.Tos } return nil } -func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { +func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { if x != nil { - return x.Checksum + return x.Dscp } return nil } -// PPP packet header -type FlowPpp struct { +// Differentiated services code point (DSCP) packet field. +type FlowIpv4Dscp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // Description missing in models - Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3,oneof" json:"control,omitempty"` + Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3,oneof" json:"phb,omitempty"` // Description missing in models - ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3,oneof" json:"ecn,omitempty"` } -func (x *FlowPpp) Reset() { - *x = FlowPpp{} +func (x *FlowIpv4Dscp) Reset() { + *x = FlowIpv4Dscp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[168] + mi := &file_otg_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPpp) String() string { +func (x *FlowIpv4Dscp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPpp) ProtoMessage() {} +func (*FlowIpv4Dscp) ProtoMessage() {} -func (x *FlowPpp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[168] +func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33004,67 +33007,62 @@ func (x *FlowPpp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. -func (*FlowPpp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{168} -} - -func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { - if x != nil { - return x.Address - } - return nil +// Deprecated: Use FlowIpv4Dscp.ProtoReflect.Descriptor instead. +func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{170} } -func (x *FlowPpp) GetControl() *PatternFlowPppControl { +func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { if x != nil { - return x.Control + return x.Phb } return nil } -func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { +func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { if x != nil { - return x.ProtocolType + return x.Ecn } return nil } -// IGMPv1 packet header -type FlowIgmpv1 struct { +// Type of service (TOS) packet field. +type FlowIpv4Tos struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3,oneof" json:"precedence,omitempty"` // Description missing in models - Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3,oneof" json:"type,omitempty"` + Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` // Description missing in models - Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3,oneof" json:"throughput,omitempty"` // Description missing in models - Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3,oneof" json:"reliability,omitempty"` // Description missing in models - GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3,oneof" json:"group_address,omitempty"` + Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3,oneof" json:"monetary,omitempty"` + // Description missing in models + Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3,oneof" json:"unused,omitempty"` } -func (x *FlowIgmpv1) Reset() { - *x = FlowIgmpv1{} +func (x *FlowIpv4Tos) Reset() { + *x = FlowIpv4Tos{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[169] + mi := &file_otg_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIgmpv1) String() string { +func (x *FlowIpv4Tos) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIgmpv1) ProtoMessage() {} +func (*FlowIpv4Tos) ProtoMessage() {} -func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[169] +func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33075,80 +33073,94 @@ func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. -func (*FlowIgmpv1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{169} +// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. +func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{171} } -func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { +func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { if x != nil { - return x.Version + return x.Precedence } return nil } -func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { +func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { if x != nil { - return x.Type + return x.Delay } return nil } -func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { +func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { if x != nil { - return x.Unused + return x.Throughput } return nil } -func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { +func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { if x != nil { - return x.Checksum + return x.Reliability } return nil } -func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { +func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { if x != nil { - return x.GroupAddress + return x.Monetary } return nil } -// MPLS packet header; When configuring multiple such headers, the count shall not exceed -// 20. -type FlowMpls struct { +func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { + if x != nil { + return x.Unused + } + return nil +} + +// IPv6 packet header +type FlowIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` // Description missing in models - BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3,oneof" json:"bottom_of_stack,omitempty"` + FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` // Description missing in models - TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` + // Description missing in models + NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` + // Description missing in models + HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + // Description missing in models + Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` } -func (x *FlowMpls) Reset() { - *x = FlowMpls{} +func (x *FlowIpv6) Reset() { + *x = FlowIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[170] + mi := &file_otg_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMpls) String() string { +func (x *FlowIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMpls) ProtoMessage() {} +func (*FlowIpv6) ProtoMessage() {} -func (x *FlowMpls) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[170] +func (x *FlowIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33159,76 +33171,118 @@ func (x *FlowMpls) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. -func (*FlowMpls) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{170} +// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. +func (*FlowIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{172} } -func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { +func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { if x != nil { - return x.Label + return x.Version } return nil } -func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { +func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { if x != nil { return x.TrafficClass } return nil } -func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { +func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { if x != nil { - return x.BottomOfStack + return x.FlowLabel } return nil } -func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { +func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { if x != nil { - return x.TimeToLive + return x.PayloadLength } return nil } -// The frame size which overrides the total length of the packet -type FlowSize struct { +func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { + if x != nil { + return x.NextHeader + } + return nil +} + +func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { + if x != nil { + return x.HopLimit + } + return nil +} + +func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { + if x != nil { + return x.Src + } + return nil +} + +func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { + if x != nil { + return x.Dst + } + return nil +} + +// IEEE 802.1Qbb PFC Pause packet header. +type FlowPfcPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.fixed - Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` + Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` // Description missing in models - // default = 64 - Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` + Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` // Description missing in models - Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` // Description missing in models - Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3,oneof" json:"random,omitempty"` + ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` // Description missing in models - WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3,oneof" json:"weight_pairs,omitempty"` + ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3,oneof" json:"class_enable_vector,omitempty"` + // Description missing in models + PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3,oneof" json:"pause_class_0,omitempty"` + // Description missing in models + PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3,oneof" json:"pause_class_1,omitempty"` + // Description missing in models + PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3,oneof" json:"pause_class_2,omitempty"` + // Description missing in models + PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3,oneof" json:"pause_class_3,omitempty"` + // Description missing in models + PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3,oneof" json:"pause_class_4,omitempty"` + // Description missing in models + PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3,oneof" json:"pause_class_5,omitempty"` + // Description missing in models + PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3,oneof" json:"pause_class_6,omitempty"` + // Description missing in models + PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3,oneof" json:"pause_class_7,omitempty"` } -func (x *FlowSize) Reset() { - *x = FlowSize{} +func (x *FlowPfcPause) Reset() { + *x = FlowPfcPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[171] + mi := &file_otg_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize) String() string { +func (x *FlowPfcPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize) ProtoMessage() {} +func (*FlowPfcPause) ProtoMessage() {} -func (x *FlowSize) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[171] +func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33239,148 +33293,137 @@ func (x *FlowSize) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. -func (*FlowSize) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171} +// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. +func (*FlowPfcPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{173} } -func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { + if x != nil { + return x.Dst } - return FlowSize_Choice_unspecified + return nil } -func (x *FlowSize) GetFixed() uint32 { - if x != nil && x.Fixed != nil { - return *x.Fixed +func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { + if x != nil { + return x.Src } - return 0 + return nil } -func (x *FlowSize) GetIncrement() *FlowSizeIncrement { +func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { if x != nil { - return x.Increment + return x.EtherType } return nil } -func (x *FlowSize) GetRandom() *FlowSizeRandom { +func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { if x != nil { - return x.Random + return x.ControlOpCode } return nil } -func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { +func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { if x != nil { - return x.WeightPairs + return x.ClassEnableVector } return nil } -// Frame size that increments from a starting size to -// an ending size incrementing by a step size. -type FlowSizeIncrement struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Starting frame size in bytes - // default = 64 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Ending frame size in bytes - // default = 1518 - End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` - // Step frame size in bytes - // default = 1 - Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` +func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { + if x != nil { + return x.PauseClass_0 + } + return nil } -func (x *FlowSizeIncrement) Reset() { - *x = FlowSizeIncrement{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[172] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { + if x != nil { + return x.PauseClass_1 } + return nil } -func (x *FlowSizeIncrement) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { + if x != nil { + return x.PauseClass_2 + } + return nil } -func (*FlowSizeIncrement) ProtoMessage() {} - -func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[172] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { + if x != nil { + return x.PauseClass_3 } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. -func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172} +func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { + if x != nil { + return x.PauseClass_4 + } + return nil } -func (x *FlowSizeIncrement) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { + if x != nil { + return x.PauseClass_5 } - return 0 + return nil } -func (x *FlowSizeIncrement) GetEnd() uint32 { - if x != nil && x.End != nil { - return *x.End +func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { + if x != nil { + return x.PauseClass_6 } - return 0 + return nil } -func (x *FlowSizeIncrement) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { + if x != nil { + return x.PauseClass_7 } - return 0 + return nil } -// Random frame size from a min value to a max value. -type FlowSizeRandom struct { +// IEEE 802.3x global ethernet pause packet header +type FlowEthernetPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` // Description missing in models - // default = 1518 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + // Description missing in models + ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + // Description missing in models + Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3,oneof" json:"time,omitempty"` } -func (x *FlowSizeRandom) Reset() { - *x = FlowSizeRandom{} +func (x *FlowEthernetPause) Reset() { + *x = FlowEthernetPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[173] + mi := &file_otg_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeRandom) String() string { +func (x *FlowEthernetPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeRandom) ProtoMessage() {} +func (*FlowEthernetPause) ProtoMessage() {} -func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[173] +func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33391,73 +33434,101 @@ func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. -func (*FlowSizeRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{173} +// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. +func (*FlowEthernetPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{174} } -func (x *FlowSizeRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min +func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { + if x != nil { + return x.Dst } - return 0 + return nil } -func (x *FlowSizeRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max +func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { + if x != nil { + return x.Src } - return 0 + return nil } -// Frame size distribution, defined as pairs (including IMIX distribution). -// Frames are randomly generated such that the proportion of each frame size out of -// the total number of frames -// are matching with the weight value of the pair. However, as with any -// other probability -// distribution, the sample distribution is close to theoretical value only if the size -// of the sample is reasonably large. -// When the number of frames is very low the transmitted frames may not come close to -// the ratio described in the weight. -type FlowSizeWeightPairs struct { +func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { + if x != nil { + return x.EtherType + } + return nil +} + +func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { + if x != nil { + return x.ControlOpCode + } + return nil +} + +func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { + if x != nil { + return x.Time + } + return nil +} + +// TCP packet header +type FlowTcp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.predefined - Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` - // Specify predefined frame size distribution pairs (including IMIX distribution). - // - // The available predefined distribution pairs are: - // - IMIX (64:7, 570:4, and 1518:1) - // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) - // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) - // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) - // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) - // default = Predefined.Enum.imix - Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` + SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` // Description missing in models - Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` + DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + // Description missing in models + SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3,oneof" json:"seq_num,omitempty"` + // Description missing in models + AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3,oneof" json:"ack_num,omitempty"` + // Description missing in models + DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3,oneof" json:"data_offset,omitempty"` + // Description missing in models + EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3,oneof" json:"ecn_ns,omitempty"` + // Description missing in models + EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3,oneof" json:"ecn_cwr,omitempty"` + // Description missing in models + EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3,oneof" json:"ecn_echo,omitempty"` + // Description missing in models + CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3,oneof" json:"ctl_urg,omitempty"` + // Description missing in models + CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3,oneof" json:"ctl_ack,omitempty"` + // Description missing in models + CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3,oneof" json:"ctl_psh,omitempty"` + // Description missing in models + CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3,oneof" json:"ctl_rst,omitempty"` + // Description missing in models + CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3,oneof" json:"ctl_syn,omitempty"` + // Description missing in models + CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3,oneof" json:"ctl_fin,omitempty"` + // Description missing in models + Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3,oneof" json:"window,omitempty"` } -func (x *FlowSizeWeightPairs) Reset() { - *x = FlowSizeWeightPairs{} +func (x *FlowTcp) Reset() { + *x = FlowTcp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[174] + mi := &file_otg_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs) String() string { +func (x *FlowTcp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs) ProtoMessage() {} +func (*FlowTcp) ProtoMessage() {} -func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[174] +func (x *FlowTcp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33468,124 +33539,134 @@ func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174} +// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. +func (*FlowTcp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{175} } -func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { + if x != nil { + return x.SrcPort } - return FlowSizeWeightPairs_Choice_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { - if x != nil && x.Predefined != nil { - return *x.Predefined +func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { + if x != nil { + return x.DstPort } - return FlowSizeWeightPairs_Predefined_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { +func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { if x != nil { - return x.Custom + return x.SeqNum } return nil } -// Custom frame size distribution pair. -type FlowSizeWeightPairsCustom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { + if x != nil { + return x.AckNum + } + return nil +} - // The size of the frame (in bytes) for this weight pair. - // default = 64 - Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` - // Weight assigned to the corresponding frame size in this weight pair. - // Higher weight means more packets. - // default = 1 - Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` +func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { + if x != nil { + return x.DataOffset + } + return nil } -func (x *FlowSizeWeightPairsCustom) Reset() { - *x = FlowSizeWeightPairsCustom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[175] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { + if x != nil { + return x.EcnNs } + return nil } -func (x *FlowSizeWeightPairsCustom) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { + if x != nil { + return x.EcnCwr + } + return nil } -func (*FlowSizeWeightPairsCustom) ProtoMessage() {} +func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { + if x != nil { + return x.EcnEcho + } + return nil +} -func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[175] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { + if x != nil { + return x.CtlUrg } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{175} +func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { + if x != nil { + return x.CtlAck + } + return nil } -func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { - if x != nil && x.Size != nil { - return *x.Size +func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { + if x != nil { + return x.CtlPsh } - return 0 + return nil } -func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { - if x != nil && x.Weight != nil { - return *x.Weight +func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { + if x != nil { + return x.CtlRst } - return 0 + return nil } -// The rate of packet transmission -type FlowRate struct { +func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { + if x != nil { + return x.CtlSyn + } + return nil +} + +func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { + if x != nil { + return x.CtlFin + } + return nil +} + +func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { + if x != nil { + return x.Window + } + return nil +} + +// UDP packet header +type FlowUdp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The available types of flow rate. - // default = Choice.Enum.pps - Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` - // Packets per second. - // default = 1000 - Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` - // Bits per second. - // default = 1000000000 - Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` - // Kilobits per second. - // default = 1000000 - Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` - // Megabits per second. - // default = 1000 - Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` - // Gigabits per second. - // default = 1 - Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` - // The percentage of a port location's available bandwidth. - // default = 100 - Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` + // Description missing in models + SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + // Description missing in models + DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + // Description missing in models + Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Description missing in models + Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` } -func (x *FlowRate) Reset() { - *x = FlowRate{} +func (x *FlowUdp) Reset() { + *x = FlowUdp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33593,13 +33674,13 @@ func (x *FlowRate) Reset() { } } -func (x *FlowRate) String() string { +func (x *FlowUdp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate) ProtoMessage() {} +func (*FlowUdp) ProtoMessage() {} -func (x *FlowRate) ProtoReflect() protoreflect.Message { +func (x *FlowUdp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33611,81 +33692,61 @@ func (x *FlowRate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. -func (*FlowRate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. +func (*FlowUdp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{176} } -func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowRate_Choice_unspecified -} - -func (x *FlowRate) GetPps() uint64 { - if x != nil && x.Pps != nil { - return *x.Pps - } - return 0 -} - -func (x *FlowRate) GetBps() uint64 { - if x != nil && x.Bps != nil { - return *x.Bps - } - return 0 -} - -func (x *FlowRate) GetKbps() uint64 { - if x != nil && x.Kbps != nil { - return *x.Kbps +func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { + if x != nil { + return x.SrcPort } - return 0 + return nil } -func (x *FlowRate) GetMbps() uint64 { - if x != nil && x.Mbps != nil { - return *x.Mbps +func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { + if x != nil { + return x.DstPort } - return 0 + return nil } -func (x *FlowRate) GetGbps() uint32 { - if x != nil && x.Gbps != nil { - return *x.Gbps +func (x *FlowUdp) GetLength() *PatternFlowUdpLength { + if x != nil { + return x.Length } - return 0 + return nil } -func (x *FlowRate) GetPercentage() float32 { - if x != nil && x.Percentage != nil { - return *x.Percentage +func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { + if x != nil { + return x.Checksum } - return 0 + return nil } -// A container for different transmit durations. -type FlowDuration struct { +// Standard GRE packet header (RFC2784) +type FlowGre struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A choice used to determine the type of duration. - // default = Choice.Enum.continuous - Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3,oneof" json:"fixed_packets,omitempty"` + ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3,oneof" json:"checksum_present,omitempty"` // Description missing in models - FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3,oneof" json:"fixed_seconds,omitempty"` + Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` // Description missing in models - Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3,oneof" json:"burst,omitempty"` + Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3,oneof" json:"continuous,omitempty"` + Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` } -func (x *FlowDuration) Reset() { - *x = FlowDuration{} +func (x *FlowGre) Reset() { + *x = FlowGre{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33693,13 +33754,13 @@ func (x *FlowDuration) Reset() { } } -func (x *FlowDuration) String() string { +func (x *FlowGre) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration) ProtoMessage() {} +func (*FlowGre) ProtoMessage() {} -func (x *FlowDuration) ProtoReflect() protoreflect.Message { +func (x *FlowGre) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33711,61 +33772,89 @@ func (x *FlowDuration) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. -func (*FlowDuration) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. +func (*FlowGre) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{177} } -func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { + if x != nil { + return x.ChecksumPresent } - return FlowDuration_Choice_unspecified + return nil } -func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { +func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { if x != nil { - return x.FixedPackets + return x.Reserved0 } return nil } -func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { +func (x *FlowGre) GetVersion() *PatternFlowGreVersion { if x != nil { - return x.FixedSeconds + return x.Version } return nil } -func (x *FlowDuration) GetBurst() *FlowBurst { +func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { if x != nil { - return x.Burst + return x.Protocol } return nil } -func (x *FlowDuration) GetContinuous() *FlowContinuous { +func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { if x != nil { - return x.Continuous + return x.Checksum } return nil } -// Transmit will be continuous and will not stop automatically. -type FlowContinuous struct { +func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { + if x != nil { + return x.Reserved1 + } + return nil +} + +// GTPv1 packet header +type FlowGtpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + // Description missing in models + Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Description missing in models + EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3,oneof" json:"e_flag,omitempty"` + // Description missing in models + SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // Description missing in models + PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3,oneof" json:"pn_flag,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + // Description missing in models + SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3,oneof" json:"squence_number,omitempty"` + // Description missing in models + NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3,oneof" json:"n_pdu_number,omitempty"` + // Description missing in models + NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3,oneof" json:"next_extension_header_type,omitempty"` + // A list of optional extension headers. + ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` } -func (x *FlowContinuous) Reset() { - *x = FlowContinuous{} +func (x *FlowGtpv1) Reset() { + *x = FlowGtpv1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33773,13 +33862,13 @@ func (x *FlowContinuous) Reset() { } } -func (x *FlowContinuous) String() string { +func (x *FlowGtpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowContinuous) ProtoMessage() {} +func (*FlowGtpv1) ProtoMessage() {} -func (x *FlowContinuous) ProtoReflect() protoreflect.Message { +func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33791,142 +33880,133 @@ func (x *FlowContinuous) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. -func (*FlowContinuous) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. +func (*FlowGtpv1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{178} } -func (x *FlowContinuous) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { + if x != nil { + return x.Version } - return 0 + return nil } -func (x *FlowContinuous) GetDelay() *FlowDelay { +func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { if x != nil { - return x.Delay + return x.ProtocolType } return nil } -// The optional container to specify the delay before starting -// transmission of packets. -type FlowDelay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { + if x != nil { + return x.Reserved + } + return nil +} - // Description missing in models - // default = Choice.Enum.bytes - Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` +func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { + if x != nil { + return x.EFlag + } + return nil } -func (x *FlowDelay) Reset() { - *x = FlowDelay{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[179] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { + if x != nil { + return x.SFlag } + return nil } -func (x *FlowDelay) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { + if x != nil { + return x.PnFlag + } + return nil } -func (*FlowDelay) ProtoMessage() {} +func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { + if x != nil { + return x.MessageType + } + return nil +} -func (x *FlowDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[179] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { + if x != nil { + return x.MessageLength } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. -func (*FlowDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179} +func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { + if x != nil { + return x.Teid + } + return nil } -func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { + if x != nil { + return x.SquenceNumber } - return FlowDelay_Choice_unspecified + return nil } -func (x *FlowDelay) GetBytes() float32 { - if x != nil && x.Bytes != nil { - return *x.Bytes +func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { + if x != nil { + return x.NPduNumber } - return 0 + return nil } -func (x *FlowDelay) GetNanoseconds() float32 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds +func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { + if x != nil { + return x.NextExtensionHeaderType } - return 0 + return nil } -func (x *FlowDelay) GetMicroseconds() float32 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { + if x != nil { + return x.ExtensionHeaders } - return 0 + return nil } -// Transmit a fixed number of packets after which the flow will stop. -type FlowFixedPackets struct { +// Description missing in models +type FlowGtpExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of packets. - // default = 1 - Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3,oneof" json:"extension_length,omitempty"` + // Description missing in models + Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"` + // Description missing in models + NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3,oneof" json:"next_extension_header,omitempty"` } -func (x *FlowFixedPackets) Reset() { - *x = FlowFixedPackets{} +func (x *FlowGtpExtension) Reset() { + *x = FlowGtpExtension{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[180] + mi := &file_otg_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedPackets) String() string { +func (x *FlowGtpExtension) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedPackets) ProtoMessage() {} +func (*FlowGtpExtension) ProtoMessage() {} -func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[180] +func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33937,65 +34017,75 @@ func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. -func (*FlowFixedPackets) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{180} +// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. +func (*FlowGtpExtension) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{179} } -func (x *FlowFixedPackets) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets +func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { + if x != nil { + return x.ExtensionLength } - return 0 + return nil } -func (x *FlowFixedPackets) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { + if x != nil { + return x.Contents } - return 0 + return nil } -func (x *FlowFixedPackets) GetDelay() *FlowDelay { +func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { if x != nil { - return x.Delay + return x.NextExtensionHeader } return nil } -// Transmit for a fixed number of seconds after which the flow will stop. -type FlowFixedSeconds struct { +// GTPv2 packet header +type FlowGtpv2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of seconds. - // default = 1 - Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3,oneof" json:"piggybacking_flag,omitempty"` + // Description missing in models + TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3,oneof" json:"teid_flag,omitempty"` + // Description missing in models + Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3,oneof" json:"spare1,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Description missing in models + Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3,oneof" json:"spare2,omitempty"` } -func (x *FlowFixedSeconds) Reset() { - *x = FlowFixedSeconds{} +func (x *FlowGtpv2) Reset() { + *x = FlowGtpv2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[181] + mi := &file_otg_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedSeconds) String() string { +func (x *FlowGtpv2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedSeconds) ProtoMessage() {} +func (*FlowGtpv2) ProtoMessage() {} -func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[181] +func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34006,71 +34096,117 @@ func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. -func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{181} +// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. +func (*FlowGtpv2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{180} } -func (x *FlowFixedSeconds) GetSeconds() float32 { - if x != nil && x.Seconds != nil { - return *x.Seconds +func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { + if x != nil { + return x.Version } - return 0 + return nil } -func (x *FlowFixedSeconds) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { + if x != nil { + return x.PiggybackingFlag } - return 0 + return nil } -func (x *FlowFixedSeconds) GetDelay() *FlowDelay { +func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { if x != nil { - return x.Delay + return x.TeidFlag } return nil } -// Transmits continuous or fixed burst of packets. -// For continuous burst of packets, it will not automatically stop. -// For fixed burst of packets, it will stop after transmitting fixed number of bursts. -type FlowBurst struct { +func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { + if x != nil { + return x.Spare1 + } + return nil +} + +func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { + if x != nil { + return x.MessageType + } + return nil +} + +func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { + if x != nil { + return x.MessageLength + } + return nil +} + +func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { + if x != nil { + return x.Teid + } + return nil +} + +func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { + if x != nil { + return x.Spare2 + } + return nil +} + +// ARP packet header +type FlowArp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The number of packet bursts transmitted per flow. - // A value of 0 implies continuous burst of packets. - // default = 0 - Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` - // The number of packets transmitted per burst. - // default = 1 - Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3,oneof" json:"inter_burst_gap,omitempty"` + HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3,oneof" json:"hardware_type,omitempty"` + // Description missing in models + ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + // Description missing in models + HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3,oneof" json:"hardware_length,omitempty"` + // Description missing in models + ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3,oneof" json:"protocol_length,omitempty"` + // Description missing in models + Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3,oneof" json:"operation,omitempty"` + // Description missing in models + SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3,oneof" json:"sender_hardware_addr,omitempty"` + // Description missing in models + SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3,oneof" json:"sender_protocol_addr,omitempty"` + // Description missing in models + TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3,oneof" json:"target_hardware_addr,omitempty"` + // Description missing in models + TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3,oneof" json:"target_protocol_addr,omitempty"` } -func (x *FlowBurst) Reset() { - *x = FlowBurst{} +func (x *FlowArp) Reset() { + *x = FlowArp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[182] + mi := &file_otg_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowBurst) String() string { +func (x *FlowArp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowBurst) ProtoMessage() {} +func (*FlowArp) ProtoMessage() {} -func (x *FlowBurst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[182] +func (x *FlowArp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34081,79 +34217,104 @@ func (x *FlowBurst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. -func (*FlowBurst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{182} +// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. +func (*FlowArp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{181} } -func (x *FlowBurst) GetBursts() uint32 { - if x != nil && x.Bursts != nil { - return *x.Bursts +func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { + if x != nil { + return x.HardwareType } - return 0 + return nil } -func (x *FlowBurst) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets +func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { + if x != nil { + return x.ProtocolType } - return 0 + return nil } -func (x *FlowBurst) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { + if x != nil { + return x.HardwareLength } - return 0 + return nil } -func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { +func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { if x != nil { - return x.InterBurstGap + return x.ProtocolLength } return nil } -// The optional container for specifying a gap between bursts. -type FlowDurationInterBurstGap struct { +func (x *FlowArp) GetOperation() *PatternFlowArpOperation { + if x != nil { + return x.Operation + } + return nil +} + +func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { + if x != nil { + return x.SenderHardwareAddr + } + return nil +} + +func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { + if x != nil { + return x.SenderProtocolAddr + } + return nil +} + +func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { + if x != nil { + return x.TargetHardwareAddr + } + return nil +} + +func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { + if x != nil { + return x.TargetProtocolAddr + } + return nil +} + +// ICMP packet header +type FlowIcmp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of inter burst gap units. - // default = Choice.Enum.bytes - Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` - // The amount of time between bursts expressed in bytes. - // A value of 0 indicates no gap between bursts. - // default = 12 - Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The amount of time between bursts expressed in nanoseconds. - // A value of 0 indicates no gap between bursts. - // default = 96 - Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The amount of time between bursts expressed in microseconds. - // A value of 0 indicates no gap between bursts. - // default = 0.096 - Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` + // Description missing in models + // default = Choice.Enum.echo + Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` } -func (x *FlowDurationInterBurstGap) Reset() { - *x = FlowDurationInterBurstGap{} +func (x *FlowIcmp) Reset() { + *x = FlowIcmp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[183] + mi := &file_otg_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap) String() string { +func (x *FlowIcmp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap) ProtoMessage() {} +func (*FlowIcmp) ProtoMessage() {} -func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[183] +func (x *FlowIcmp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34164,81 +34325,60 @@ func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183} +// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. +func (*FlowIcmp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{182} } -func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { +func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowDurationInterBurstGap_Choice_unspecified -} - -func (x *FlowDurationInterBurstGap) GetBytes() float64 { - if x != nil && x.Bytes != nil { - return *x.Bytes - } - return 0 -} - -func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds - } - return 0 + return FlowIcmp_Choice_unspecified } -func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { + if x != nil { + return x.Echo } - return 0 + return nil } -// The optional container for configuring flow metrics. -type FlowMetrics struct { +// Packet Header for ICMP echo request +type FlowIcmpEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enables flow metrics. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Enables additional flow metric loss calculation. - // default = False - Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Rx Tx ratio. - RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3,oneof" json:"rx_tx_ratio,omitempty"` - // Enables additional flow metric first and last timestamps. - // default = False - Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Latency metrics. - Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` - // Predefined metric tags - PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3,oneof" json:"predefined_metric_tags,omitempty"` + // Description missing in models + Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` } -func (x *FlowMetrics) Reset() { - *x = FlowMetrics{} +func (x *FlowIcmpEcho) Reset() { + *x = FlowIcmpEcho{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[184] + mi := &file_otg_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetrics) String() string { +func (x *FlowIcmpEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetrics) ProtoMessage() {} +func (*FlowIcmpEcho) ProtoMessage() {} -func (x *FlowMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[184] +func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34249,99 +34389,76 @@ func (x *FlowMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. -func (*FlowMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{184} -} - -func (x *FlowMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable - } - return false +// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. +func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{183} } -func (x *FlowMetrics) GetLoss() bool { - if x != nil && x.Loss != nil { - return *x.Loss +func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { + if x != nil { + return x.Type } - return false + return nil } -func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { +func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { if x != nil { - return x.RxTxRatio + return x.Code } return nil } -func (x *FlowMetrics) GetTimestamps() bool { - if x != nil && x.Timestamps != nil { - return *x.Timestamps +func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { + if x != nil { + return x.Checksum } - return false + return nil } -func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { +func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { if x != nil { - return x.Latency + return x.Identifier } return nil } -func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { +func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { if x != nil { - return x.PredefinedMetricTags + return x.SequenceNumber } return nil } -// The optional container for per flow latency metric configuration. -type FlowLatencyMetrics struct { +// ICMPv6 packet header +type FlowIcmpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable latency metrics using timestamps. - // - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Select the type of latency measurement. The different types of - // latency measurements are: - // - // store_forward: - // The time interval starting when the last bit of the frame leaves the - // sending port and ending when the first bit of the frame is seen on - // the receiving port (LIFO). This is based on the RFC 1242 standard. - // - // cut_through: - // The time interval starting when the first bit of the frame leaves - // the sending port and ending when the first bit of the frame is seen - // on the receiving port (FIFO). This is based on the RFC 1242 - // standard. - // default = Mode.Enum.store_forward - Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` + // Description missing in models + // default = Choice.Enum.echo + Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` } -func (x *FlowLatencyMetrics) Reset() { - *x = FlowLatencyMetrics{} +func (x *FlowIcmpv6) Reset() { + *x = FlowIcmpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[185] + mi := &file_otg_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics) String() string { +func (x *FlowIcmpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics) ProtoMessage() {} +func (*FlowIcmpv6) ProtoMessage() {} -func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[185] +func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34352,56 +34469,60 @@ func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185} +// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{184} } -func (x *FlowLatencyMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowIcmpv6_Choice_unspecified } -func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode +func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { + if x != nil { + return x.Echo } - return FlowLatencyMetrics_Mode_unspecified + return nil } -// List of predefined flow tracking options, outside packet fields, that can be enabled. -type FlowPredefinedTags struct { +// Packet Header for ICMPv6 Echo +type FlowIcmpv6Echo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enables Rx port or lag level disaggregation with predefined metrics tag name set - // as rx_name. - // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics - // response. - // default = False - RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Description missing in models + Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` } -func (x *FlowPredefinedTags) Reset() { - *x = FlowPredefinedTags{} +func (x *FlowIcmpv6Echo) Reset() { + *x = FlowIcmpv6Echo{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[186] + mi := &file_otg_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPredefinedTags) String() string { +func (x *FlowIcmpv6Echo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPredefinedTags) ProtoMessage() {} +func (*FlowIcmpv6Echo) ProtoMessage() {} -func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[186] +func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34412,67 +34533,77 @@ func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. -func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{186} +// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{185} } -func (x *FlowPredefinedTags) GetRxName() bool { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { + if x != nil { + return x.Type } - return false + return nil } -// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to -// the Tx packets -// for the configured flow. It is a factor by which the Tx packet count is multiplied -// to calculate -// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate -// loss -// percentage of flow at aggregate level. -type FlowRxTxRatio struct { +func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { + if x != nil { + return x.Code + } + return nil +} + +func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { + if x != nil { + return x.Checksum + } + return nil +} + +// PPP packet header +type FlowPpp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` + Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` // Description missing in models - RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3,oneof" json:"rx_count,omitempty"` - // Should be a positive, non-zero value. The default value of 1, is when the Rx packet - // count across - // all ports is expected to match the Tx packet count. A custom integer value (>1) can - // be specified for - // loss calculation for cases when there are multiple destination addresses configured - // within one flow, - // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx - // side generates two - // packets from each source in 1:1 protection mode but only one of the two packets are - // received by the - // Rx port, we may need to specify a fractional value instead. - // default = 1.0 - Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3,oneof" json:"control,omitempty"` + // Description missing in models + ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` } -func (x *FlowRxTxRatio) Reset() { - *x = FlowRxTxRatio{} +func (x *FlowPpp) Reset() { + *x = FlowPpp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[187] + mi := &file_otg_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio) String() string { +func (x *FlowPpp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio) ProtoMessage() {} +func (*FlowPpp) ProtoMessage() {} -func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[187] +func (x *FlowPpp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34483,58 +34614,67 @@ func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187} +// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. +func (*FlowPpp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{186} } -func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { + if x != nil { + return x.Address } - return FlowRxTxRatio_Choice_unspecified + return nil } -func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { +func (x *FlowPpp) GetControl() *PatternFlowPppControl { if x != nil { - return x.RxCount + return x.Control } return nil } -func (x *FlowRxTxRatio) GetValue() float32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { + if x != nil { + return x.ProtocolType } - return 0 + return nil } -// This is for cases where one copy of Tx packet is received on all Rx ports and so -// the sum total of Rx packets -// received across all Rx ports is a multiple of Rx port count and Tx packets. -type FlowRxTxRatioRxCount struct { +// IGMPv1 packet header +type FlowIgmpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + // Description missing in models + Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3,oneof" json:"group_address,omitempty"` } -func (x *FlowRxTxRatioRxCount) Reset() { - *x = FlowRxTxRatioRxCount{} +func (x *FlowIgmpv1) Reset() { + *x = FlowIgmpv1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[188] + mi := &file_otg_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatioRxCount) String() string { +func (x *FlowIgmpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatioRxCount) ProtoMessage() {} +func (*FlowIgmpv1) ProtoMessage() {} -func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[188] +func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34545,47 +34685,80 @@ func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{188} +// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. +func (*FlowIgmpv1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{187} } -// The optional container for event configuration. -type Event struct { +func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { + if x != nil { + return x.Version + } + return nil +} + +func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { + if x != nil { + return x.Type + } + return nil +} + +func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { + if x != nil { + return x.Unused + } + return nil +} + +func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { + if x != nil { + return x.Checksum + } + return nil +} + +func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { + if x != nil { + return x.GroupAddress + } + return nil +} + +// MPLS packet header; When configuring multiple such headers, the count shall not exceed +// 20. +type FlowMpls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable all events. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` // Description missing in models - RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3,oneof" json:"rx_rate_threshold,omitempty"` + TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` // Description missing in models - RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3,oneof" json:"route_advertise_withdraw,omitempty"` + BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3,oneof" json:"bottom_of_stack,omitempty"` + // Description missing in models + TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` } -func (x *Event) Reset() { - *x = Event{} +func (x *FlowMpls) Reset() { + *x = FlowMpls{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[189] + mi := &file_otg_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Event) String() string { +func (x *FlowMpls) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Event) ProtoMessage() {} +func (*FlowMpls) ProtoMessage() {} -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[189] +func (x *FlowMpls) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34596,73 +34769,76 @@ func (x *Event) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{189} +// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. +func (*FlowMpls) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{188} } -func (x *Event) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { + if x != nil { + return x.Label } - return false + return nil } -func (x *Event) GetLink() *EventLink { +func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { if x != nil { - return x.Link + return x.TrafficClass } return nil } -func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { +func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { if x != nil { - return x.RxRateThreshold + return x.BottomOfStack } return nil } -func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { +func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { if x != nil { - return x.RouteAdvertiseWithdraw + return x.TimeToLive } return nil } -// The optional container for rx rate threshold event configuration. -type EventRxRateThreshold struct { +// The frame size which overrides the total length of the packet +type FlowSize struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable the rx_rate_threshold event. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // True to enable notifications when the rx rate of a flow passes above - // or below the threshold value. - // default = 95 - Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + // Description missing in models + // default = Choice.Enum.fixed + Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 64 + Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` + // Description missing in models + Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3,oneof" json:"random,omitempty"` + // Description missing in models + WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3,oneof" json:"weight_pairs,omitempty"` } -func (x *EventRxRateThreshold) Reset() { - *x = EventRxRateThreshold{} +func (x *FlowSize) Reset() { + *x = FlowSize{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[190] + mi := &file_otg_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRxRateThreshold) String() string { +func (x *FlowSize) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRxRateThreshold) ProtoMessage() {} +func (*FlowSize) ProtoMessage() {} -func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[190] +func (x *FlowSize) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34673,53 +34849,81 @@ func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. -func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{190} +// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. +func (*FlowSize) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{189} } -func (x *EventRxRateThreshold) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowSize_Choice_unspecified } -func (x *EventRxRateThreshold) GetThreshold() float32 { - if x != nil && x.Threshold != nil { - return *x.Threshold +func (x *FlowSize) GetFixed() uint32 { + if x != nil && x.Fixed != nil { + return *x.Fixed } return 0 } -// The optional container for link up/down event configuration. -type EventLink struct { +func (x *FlowSize) GetIncrement() *FlowSizeIncrement { + if x != nil { + return x.Increment + } + return nil +} + +func (x *FlowSize) GetRandom() *FlowSizeRandom { + if x != nil { + return x.Random + } + return nil +} + +func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { + if x != nil { + return x.WeightPairs + } + return nil +} + +// Frame size that increments from a starting size to +// an ending size incrementing by a step size. +type FlowSizeIncrement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a link up/down event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Starting frame size in bytes + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Ending frame size in bytes + // default = 1518 + End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` + // Step frame size in bytes + // default = 1 + Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *EventLink) Reset() { - *x = EventLink{} +func (x *FlowSizeIncrement) Reset() { + *x = FlowSizeIncrement{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[191] + mi := &file_otg_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventLink) String() string { +func (x *FlowSizeIncrement) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventLink) ProtoMessage() {} +func (*FlowSizeIncrement) ProtoMessage() {} -func (x *EventLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[191] +func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34730,47 +34934,63 @@ func (x *EventLink) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. -func (*EventLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{191} +// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. +func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{190} } -func (x *EventLink) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSizeIncrement) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return false + return 0 } -// The optional container for route advertise/withdraw event configuration. -type EventRouteAdvertiseWithdraw struct { +func (x *FlowSizeIncrement) GetEnd() uint32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +func (x *FlowSizeIncrement) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +// Random frame size from a min value to a max value. +type FlowSizeRandom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a route advertise/withdraw - // event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Description missing in models + // default = 64 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // Description missing in models + // default = 1518 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` } -func (x *EventRouteAdvertiseWithdraw) Reset() { - *x = EventRouteAdvertiseWithdraw{} +func (x *FlowSizeRandom) Reset() { + *x = FlowSizeRandom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[192] + mi := &file_otg_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRouteAdvertiseWithdraw) String() string { +func (x *FlowSizeRandom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} +func (*FlowSizeRandom) ProtoMessage() {} -func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[192] +func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34781,59 +35001,73 @@ func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. -func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{192} +// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. +func (*FlowSizeRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{191} } -func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSizeRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min } - return false + return 0 } -// Description missing in models -type EventRequest struct { +func (x *FlowSizeRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +// Frame size distribution, defined as pairs (including IMIX distribution). +// Frames are randomly generated such that the proportion of each frame size out of +// the total number of frames +// are matching with the weight value of the pair. However, as with any +// other probability +// distribution, the sample distribution is close to theoretical value only if the size +// of the sample is reasonably large. +// When the number of frames is very low the transmitted frames may not come close to +// the ratio described in the weight. +type FlowSizeWeightPairs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Constrain the events being returned by specifying event types. - // If the list is empty then all event types will be returned. - Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` - // Constrain the events being returned by specifying event sources. - // If the list is empty then all event sources will be returned. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name + // Description missing in models + // default = Choice.Enum.predefined + Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` + // Specify predefined frame size distribution pairs (including IMIX distribution). // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name - Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` + // The available predefined distribution pairs are: + // - IMIX (64:7, 570:4, and 1518:1) + // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) + // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) + // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) + // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) + // default = Predefined.Enum.imix + Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` + // Description missing in models + Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` } -func (x *EventRequest) Reset() { - *x = EventRequest{} +func (x *FlowSizeWeightPairs) Reset() { + *x = FlowSizeWeightPairs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[193] + mi := &file_otg_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest) String() string { +func (x *FlowSizeWeightPairs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest) ProtoMessage() {} +func (*FlowSizeWeightPairs) ProtoMessage() {} -func (x *EventRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[193] +func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34844,58 +35078,64 @@ func (x *EventRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. -func (*EventRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193} +// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192} } -func (x *EventRequest) GetType() []EventRequest_Type_Enum { - if x != nil { - return x.Type +func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowSizeWeightPairs_Choice_unspecified } -func (x *EventRequest) GetSource() []string { +func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { + if x != nil && x.Predefined != nil { + return *x.Predefined + } + return FlowSizeWeightPairs_Predefined_unspecified +} + +func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { if x != nil { - return x.Source + return x.Custom } return nil } -// A container that describes what events a system should provide and -// optionally where to publish them. -type EventSubscription struct { +// Custom frame size distribution pair. +type FlowSizeWeightPairsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3,oneof" json:"events,omitempty"` - // Indicates where a client wants to be notified of the events set in - // the events property. - // If this property is empty or null then no event notifications will - // be forwarded. - CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` + // The size of the frame (in bytes) for this weight pair. + // default = 64 + Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` + // Weight assigned to the corresponding frame size in this weight pair. + // Higher weight means more packets. + // default = 1 + Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` } -func (x *EventSubscription) Reset() { - *x = EventSubscription{} +func (x *FlowSizeWeightPairsCustom) Reset() { + *x = FlowSizeWeightPairsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[194] + mi := &file_otg_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventSubscription) String() string { +func (x *FlowSizeWeightPairsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventSubscription) ProtoMessage() {} +func (*FlowSizeWeightPairsCustom) ProtoMessage() {} -func (x *EventSubscription) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[194] +func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34906,77 +35146,71 @@ func (x *EventSubscription) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. -func (*EventSubscription) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{194} +// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{193} } -func (x *EventSubscription) GetEvents() *EventRequest { - if x != nil { - return x.Events +func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { + if x != nil && x.Size != nil { + return *x.Size } - return nil + return 0 } -func (x *EventSubscription) GetCallbackUrl() string { - if x != nil && x.CallbackUrl != nil { - return *x.CallbackUrl +func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { + if x != nil && x.Weight != nil { + return *x.Weight } - return "" + return 0 } -// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf -type Lldp struct { +// The rate of packet transmission +type FlowRate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of the object on which LLDP is running. - // required = true - Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint - // identifier associated with the transmitting LLDP agent. If mac address is specified - // it should be in colon seperated mac address format. - ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` - // Specifies the amount of time in seconds a receiving device should maintain LLDP information - // sent by the device before discarding it. - // default = 120 - HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` - // Set the transmission frequency of LLDP updates in seconds. - // default = 30 - AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + // The available types of flow rate. + // default = Choice.Enum.pps + Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` + // Packets per second. + // default = 1000 + Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` + // Bits per second. + // default = 1000000000 + Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` + // Kilobits per second. + // default = 1000000 + Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` + // Megabits per second. + // default = 1000 + Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` + // Gigabits per second. + // default = 1 + Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` + // The percentage of a port location's available bandwidth. + // default = 100 + Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` } -func (x *Lldp) Reset() { - *x = Lldp{} +func (x *FlowRate) Reset() { + *x = FlowRate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[195] + mi := &file_otg_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Lldp) String() string { +func (x *FlowRate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Lldp) ProtoMessage() {} +func (*FlowRate) ProtoMessage() {} -func (x *Lldp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[195] +func (x *FlowRate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34987,96 +35221,96 @@ func (x *Lldp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. -func (*Lldp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{195} +// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. +func (*FlowRate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194} } -func (x *Lldp) GetConnection() *LldpConnection { - if x != nil { - return x.Connection +func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRate_Choice_unspecified } -func (x *Lldp) GetChassisId() *LldpChassisId { - if x != nil { - return x.ChassisId +func (x *FlowRate) GetPps() uint64 { + if x != nil && x.Pps != nil { + return *x.Pps } - return nil + return 0 } -func (x *Lldp) GetPortId() *LldpPortId { - if x != nil { - return x.PortId +func (x *FlowRate) GetBps() uint64 { + if x != nil && x.Bps != nil { + return *x.Bps } - return nil + return 0 } -func (x *Lldp) GetSystemName() *LldpSystemName { - if x != nil { - return x.SystemName +func (x *FlowRate) GetKbps() uint64 { + if x != nil && x.Kbps != nil { + return *x.Kbps } - return nil + return 0 } -func (x *Lldp) GetHoldTime() uint32 { - if x != nil && x.HoldTime != nil { - return *x.HoldTime +func (x *FlowRate) GetMbps() uint64 { + if x != nil && x.Mbps != nil { + return *x.Mbps } return 0 } -func (x *Lldp) GetAdvertisementInterval() uint32 { - if x != nil && x.AdvertisementInterval != nil { - return *x.AdvertisementInterval +func (x *FlowRate) GetGbps() uint32 { + if x != nil && x.Gbps != nil { + return *x.Gbps } return 0 } -func (x *Lldp) GetName() string { - if x != nil { - return x.Name +func (x *FlowRate) GetPercentage() float32 { + if x != nil && x.Percentage != nil { + return *x.Percentage } - return "" + return 0 } -// LLDP connection to a test port. In future if more connection options arise LLDP -// connection object will be enhanced. -type LldpConnection struct { +// A container for different transmit durations. +type FlowDuration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the test port or other connection objects on which LLDP is configured. - Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` - // Name of the test port on which LLDP is configured on. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` + // A choice used to determine the type of duration. + // default = Choice.Enum.continuous + Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3,oneof" json:"fixed_packets,omitempty"` + // Description missing in models + FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3,oneof" json:"fixed_seconds,omitempty"` + // Description missing in models + Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3,oneof" json:"burst,omitempty"` + // Description missing in models + Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3,oneof" json:"continuous,omitempty"` } -func (x *LldpConnection) Reset() { - *x = LldpConnection{} +func (x *FlowDuration) Reset() { + *x = FlowDuration{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[196] + mi := &file_otg_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection) String() string { +func (x *FlowDuration) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection) ProtoMessage() {} +func (*FlowDuration) ProtoMessage() {} -func (x *LldpConnection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[196] +func (x *FlowDuration) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35087,62 +35321,76 @@ func (x *LldpConnection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. -func (*LldpConnection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196} +// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. +func (*FlowDuration) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195} } -func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { +func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return LldpConnection_Choice_unspecified + return FlowDuration_Choice_unspecified } -func (x *LldpConnection) GetPortName() string { - if x != nil && x.PortName != nil { - return *x.PortName +func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { + if x != nil { + return x.FixedPackets } - return "" + return nil } -// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint -// identifier associated with the transmitting LLDP agent. This field identifies the -// format and source of the chassis identifier string. It is based on the enumerator -// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. -type LldpChassisId struct { +func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { + if x != nil { + return x.FixedSeconds + } + return nil +} + +func (x *FlowDuration) GetBurst() *FlowBurst { + if x != nil { + return x.Burst + } + return nil +} + +func (x *FlowDuration) GetContinuous() *FlowContinuous { + if x != nil { + return x.Continuous + } + return nil +} + +// Transmit will be continuous and will not stop automatically. +type FlowContinuous struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Chassis ID subtype to be used in Chassis ID TLV. - // default = Choice.Enum.mac_address_subtype - Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` - // Name of an interface of the chassis that uniquely identifies the chassis. - InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` - // Locally assigned name of the chassis. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpChassisId) Reset() { - *x = LldpChassisId{} +func (x *FlowContinuous) Reset() { + *x = FlowContinuous{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[197] + mi := &file_otg_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId) String() string { +func (x *FlowContinuous) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId) ProtoMessage() {} +func (*FlowContinuous) ProtoMessage() {} -func (x *LldpChassisId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[197] +func (x *FlowContinuous) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35153,76 +35401,66 @@ func (x *LldpChassisId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. -func (*LldpChassisId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197} +// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. +func (*FlowContinuous) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{196} } -func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowContinuous) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return LldpChassisId_Choice_unspecified + return 0 } -func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { +func (x *FlowContinuous) GetDelay() *FlowDelay { if x != nil { - return x.MacAddressSubtype + return x.Delay } return nil } -func (x *LldpChassisId) GetInterfaceNameSubtype() string { - if x != nil && x.InterfaceNameSubtype != nil { - return *x.InterfaceNameSubtype - } - return "" -} - -func (x *LldpChassisId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype - } - return "" -} - -// The Port ID is a mandatory TLV which identifies the port component of the endpoint -// identifier associated with the transmitting LLDP agent.This field identifies the -// format and source of the port identifier string. It is based on the enumerator defined -// by the PtopoPortIdType object from RFC2922. -type LldpPortId struct { +// The optional container to specify the delay before starting +// transmission of packets. +type FlowDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Port ID subtype to be used in Port ID TLV. - // default = Choice.Enum.interface_name_subtype - Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` - // The MAC Address configured in the Port ID TLV. - MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` // Description missing in models - InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` - // The Locally assigned name configured in the Port ID TLV. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + // default = Choice.Enum.bytes + Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` } -func (x *LldpPortId) Reset() { - *x = LldpPortId{} +func (x *FlowDelay) Reset() { + *x = FlowDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[198] + mi := &file_otg_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId) String() string { +func (x *FlowDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId) ProtoMessage() {} +func (*FlowDelay) ProtoMessage() {} -func (x *LldpPortId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[198] +func (x *FlowDelay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35233,72 +35471,72 @@ func (x *LldpPortId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. -func (*LldpPortId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198} +// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. +func (*FlowDelay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197} } -func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { +func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return LldpPortId_Choice_unspecified + return FlowDelay_Choice_unspecified } -func (x *LldpPortId) GetMacAddressSubtype() string { - if x != nil && x.MacAddressSubtype != nil { - return *x.MacAddressSubtype +func (x *FlowDelay) GetBytes() float32 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return "" + return 0 } -func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { - if x != nil { - return x.InterfaceNameSubtype +func (x *FlowDelay) GetNanoseconds() float32 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds } - return nil + return 0 } -func (x *LldpPortId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype +func (x *FlowDelay) GetMicroseconds() float32 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds } - return "" + return 0 } -// The MAC address configured in the Chassis ID TLV. -type LldpChassisMacSubType struct { +// Transmit a fixed number of packets after which the flow will stop. +type FlowFixedPackets struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Stop transmit of the flow after this number of packets. + // default = 1 + Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpChassisMacSubType) Reset() { - *x = LldpChassisMacSubType{} +func (x *FlowFixedPackets) Reset() { + *x = FlowFixedPackets{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[199] + mi := &file_otg_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType) String() string { +func (x *FlowFixedPackets) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType) ProtoMessage() {} +func (*FlowFixedPackets) ProtoMessage() {} -func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[199] +func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35309,65 +35547,65 @@ func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199} +// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. +func (*FlowFixedPackets) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198} } -func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowFixedPackets) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets } - return LldpChassisMacSubType_Choice_unspecified + return 0 } -func (x *LldpChassisMacSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowFixedPackets) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return "" + return 0 } -func (x *LldpChassisMacSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowFixedPackets) GetDelay() *FlowDelay { + if x != nil { + return x.Delay } - return "" + return nil } -// The interface name configured in the Port ID TLV. -type LldpPortInterfaceNameSubType struct { +// Transmit for a fixed number of seconds after which the flow will stop. +type FlowFixedSeconds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Stop transmit of the flow after this number of seconds. + // default = 1 + Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpPortInterfaceNameSubType) Reset() { - *x = LldpPortInterfaceNameSubType{} +func (x *FlowFixedSeconds) Reset() { + *x = FlowFixedSeconds{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[200] + mi := &file_otg_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType) String() string { +func (x *FlowFixedSeconds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType) ProtoMessage() {} +func (*FlowFixedSeconds) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[200] +func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35378,65 +35616,71 @@ func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200} +// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. +func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{199} } -func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowFixedSeconds) GetSeconds() float32 { + if x != nil && x.Seconds != nil { + return *x.Seconds } - return LldpPortInterfaceNameSubType_Choice_unspecified + return 0 } -func (x *LldpPortInterfaceNameSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowFixedSeconds) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return "" + return 0 } -func (x *LldpPortInterfaceNameSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowFixedSeconds) GetDelay() *FlowDelay { + if x != nil { + return x.Delay } - return "" + return nil } -// The system Name configured in the System Name TLV. -type LldpSystemName struct { +// Transmits continuous or fixed burst of packets. +// For continuous burst of packets, it will not automatically stop. +// For fixed burst of packets, it will stop after transmitting fixed number of bursts. +type FlowBurst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The number of packet bursts transmitted per flow. + // A value of 0 implies continuous burst of packets. + // default = 0 + Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` + // The number of packets transmitted per burst. + // default = 1 + Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3,oneof" json:"inter_burst_gap,omitempty"` } -func (x *LldpSystemName) Reset() { - *x = LldpSystemName{} +func (x *FlowBurst) Reset() { + *x = FlowBurst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[201] + mi := &file_otg_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpSystemName) String() string { +func (x *FlowBurst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName) ProtoMessage() {} +func (*FlowBurst) ProtoMessage() {} -func (x *LldpSystemName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[201] +func (x *FlowBurst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35447,56 +35691,149 @@ func (x *LldpSystemName) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. -func (*LldpSystemName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201} +// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. +func (*FlowBurst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{200} } -func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { - if x != nil && x.Choice != nil { +func (x *FlowBurst) GetBursts() uint32 { + if x != nil && x.Bursts != nil { + return *x.Bursts + } + return 0 +} + +func (x *FlowBurst) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 +} + +func (x *FlowBurst) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap + } + return 0 +} + +func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { + if x != nil { + return x.InterBurstGap + } + return nil +} + +// The optional container for specifying a gap between bursts. +type FlowDurationInterBurstGap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of inter burst gap units. + // default = Choice.Enum.bytes + Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` + // The amount of time between bursts expressed in bytes. + // A value of 0 indicates no gap between bursts. + // default = 12 + Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The amount of time between bursts expressed in nanoseconds. + // A value of 0 indicates no gap between bursts. + // default = 96 + Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The amount of time between bursts expressed in microseconds. + // A value of 0 indicates no gap between bursts. + // default = 0.096 + Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` +} + +func (x *FlowDurationInterBurstGap) Reset() { + *x = FlowDurationInterBurstGap{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[201] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowDurationInterBurstGap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowDurationInterBurstGap) ProtoMessage() {} + +func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[201] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{201} +} + +func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { + if x != nil && x.Choice != nil { return *x.Choice } - return LldpSystemName_Choice_unspecified + return FlowDurationInterBurstGap_Choice_unspecified } -func (x *LldpSystemName) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowDurationInterBurstGap) GetBytes() float64 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return "" + return 0 } -func (x *LldpSystemName) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds } - return "" + return 0 } -// Error response generated while serving API request. -type Error struct { +func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds + } + return 0 +} + +// The optional container for configuring flow metrics. +type FlowMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Numeric status code based on the underlying transport being used. - // The API server MUST set this code explicitly based on following references: - // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 - // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 - // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html - // required = true - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - // Classification of error originating from within API server that may not be mapped - // to the value in `code`. - // Absence of this field may indicate that the error did not originate from within API - // server. - Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` - // List of error messages generated while executing the request. - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + // Enables flow metrics. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Enables additional flow metric loss calculation. + // default = False + Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Rx Tx ratio. + RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3,oneof" json:"rx_tx_ratio,omitempty"` + // Enables additional flow metric first and last timestamps. + // default = False + Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Latency metrics. + Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // Predefined metric tags + PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3,oneof" json:"predefined_metric_tags,omitempty"` } -func (x *Error) Reset() { - *x = Error{} +func (x *FlowMetrics) Reset() { + *x = FlowMetrics{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35504,13 +35841,13 @@ func (x *Error) Reset() { } } -func (x *Error) String() string { +func (x *FlowMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error) ProtoMessage() {} +func (*FlowMetrics) ProtoMessage() {} -func (x *Error) ProtoReflect() protoreflect.Message { +func (x *FlowMetrics) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35522,45 +35859,84 @@ func (x *Error) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error.ProtoReflect.Descriptor instead. -func (*Error) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. +func (*FlowMetrics) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{202} } -func (x *Error) GetCode() int32 { +func (x *FlowMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable + } + return false +} + +func (x *FlowMetrics) GetLoss() bool { + if x != nil && x.Loss != nil { + return *x.Loss + } + return false +} + +func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { if x != nil { - return x.Code + return x.RxTxRatio } - return 0 + return nil } -func (x *Error) GetKind() Error_Kind_Enum { - if x != nil && x.Kind != nil { - return *x.Kind +func (x *FlowMetrics) GetTimestamps() bool { + if x != nil && x.Timestamps != nil { + return *x.Timestamps } - return Error_Kind_unspecified + return false } -func (x *Error) GetErrors() []string { +func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { if x != nil { - return x.Errors + return x.Latency } return nil } -// A list of warnings that have occurred while executing the request. -type Warning struct { +func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { + if x != nil { + return x.PredefinedMetricTags + } + return nil +} + +// The optional container for per flow latency metric configuration. +type FlowLatencyMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of any system specific warnings that have occurred while - // executing the request. - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // True to enable latency metrics using timestamps. + // + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Select the type of latency measurement. The different types of + // latency measurements are: + // + // store_forward: + // The time interval starting when the last bit of the frame leaves the + // sending port and ending when the first bit of the frame is seen on + // the receiving port (LIFO). This is based on the RFC 1242 standard. + // + // cut_through: + // The time interval starting when the first bit of the frame leaves + // the sending port and ending when the first bit of the frame is seen + // on the receiving port (FIFO). This is based on the RFC 1242 + // standard. + // default = Mode.Enum.store_forward + Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` } -func (x *Warning) Reset() { - *x = Warning{} +func (x *FlowLatencyMetrics) Reset() { + *x = FlowLatencyMetrics{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35568,13 +35944,13 @@ func (x *Warning) Reset() { } } -func (x *Warning) String() string { +func (x *FlowLatencyMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Warning) ProtoMessage() {} +func (*FlowLatencyMetrics) ProtoMessage() {} -func (x *Warning) ProtoReflect() protoreflect.Message { +func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35586,32 +35962,41 @@ func (x *Warning) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Warning.ProtoReflect.Descriptor instead. -func (*Warning) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{203} } -func (x *Warning) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *FlowLatencyMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return nil + return false } -// Request for updating specific attributes of resources in traffic generator -type ConfigUpdate struct { +func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode + } + return FlowLatencyMetrics_Mode_unspecified +} + +// List of predefined flow tracking options, outside packet fields, that can be enabled. +type FlowPredefinedTags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3,oneof" json:"flows,omitempty"` + // Enables Rx port or lag level disaggregation with predefined metrics tag name set + // as rx_name. + // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics + // response. + // default = False + RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` } -func (x *ConfigUpdate) Reset() { - *x = ConfigUpdate{} +func (x *FlowPredefinedTags) Reset() { + *x = FlowPredefinedTags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35619,13 +36004,13 @@ func (x *ConfigUpdate) Reset() { } } -func (x *ConfigUpdate) String() string { +func (x *FlowPredefinedTags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate) ProtoMessage() {} +func (*FlowPredefinedTags) ProtoMessage() {} -func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { +func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35637,40 +36022,52 @@ func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. -func (*ConfigUpdate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. +func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{204} } -func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ConfigUpdate_Choice_unspecified -} - -func (x *ConfigUpdate) GetFlows() *FlowsUpdate { - if x != nil { - return x.Flows +func (x *FlowPredefinedTags) GetRxName() bool { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return false } -// A container of flows with associated properties to be updated without affecting the -// flows current transmit state. -type FlowsUpdate struct { +// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to +// the Tx packets +// for the configured flow. It is a factor by which the Tx packet count is multiplied +// to calculate +// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate +// loss +// percentage of flow at aggregate level. +type FlowRxTxRatio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow properties to be updated without affecting the transmit state. - PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` - // The list of configured flows for which given property will be updated. - Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3,oneof" json:"rx_count,omitempty"` + // Should be a positive, non-zero value. The default value of 1, is when the Rx packet + // count across + // all ports is expected to match the Tx packet count. A custom integer value (>1) can + // be specified for + // loss calculation for cases when there are multiple destination addresses configured + // within one flow, + // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx + // side generates two + // packets from each source in 1:1 protection mode but only one of the two packets are + // received by the + // Rx port, we may need to specify a fractional value instead. + // default = 1.0 + Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowsUpdate) Reset() { - *x = FlowsUpdate{} +func (x *FlowRxTxRatio) Reset() { + *x = FlowRxTxRatio{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35678,13 +36075,13 @@ func (x *FlowsUpdate) Reset() { } } -func (x *FlowsUpdate) String() string { +func (x *FlowRxTxRatio) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate) ProtoMessage() {} +func (*FlowRxTxRatio) ProtoMessage() {} -func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { +func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35696,44 +36093,43 @@ func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. -func (*FlowsUpdate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{205} } -func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { - if x != nil { - return x.PropertyNames +func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRxTxRatio_Choice_unspecified } -func (x *FlowsUpdate) GetFlows() []*Flow { +func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { if x != nil { - return x.Flows + return x.RxCount } return nil } -// Request for setting operational state of configured resources. -type ControlState struct { +func (x *FlowRxTxRatio) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +// This is for cases where one copy of Tx packet is received on all Rx ports and so +// the sum total of Rx packets +// received across all Rx ports is a multiple of Rx port count and Tx packets. +type FlowRxTxRatioRxCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Description missing in models - // required = true - Choice ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` - // Description missing in models - Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3,oneof" json:"traffic,omitempty"` } -func (x *ControlState) Reset() { - *x = ControlState{} +func (x *FlowRxTxRatioRxCount) Reset() { + *x = FlowRxTxRatioRxCount{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35741,13 +36137,13 @@ func (x *ControlState) Reset() { } } -func (x *ControlState) String() string { +func (x *FlowRxTxRatioRxCount) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState) ProtoMessage() {} +func (*FlowRxTxRatioRxCount) ProtoMessage() {} -func (x *ControlState) ProtoReflect() protoreflect.Message { +func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35759,56 +36155,32 @@ func (x *ControlState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. -func (*ControlState) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{206} } -func (x *ControlState) GetChoice() ControlState_Choice_Enum { - if x != nil { - return x.Choice - } - return ControlState_Choice_unspecified -} - -func (x *ControlState) GetPort() *StatePort { - if x != nil { - return x.Port - } - return nil -} - -func (x *ControlState) GetProtocol() *StateProtocol { - if x != nil { - return x.Protocol - } - return nil -} - -func (x *ControlState) GetTraffic() *StateTraffic { - if x != nil { - return x.Traffic - } - return nil -} - -// States associated with configured ports. -type StatePort struct { +// The optional container for event configuration. +type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // True to enable all events. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - // required = true - Choice StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum" json:"choice,omitempty"` + Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` // Description missing in models - Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3,oneof" json:"rx_rate_threshold,omitempty"` // Description missing in models - Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3,oneof" json:"capture,omitempty"` + RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3,oneof" json:"route_advertise_withdraw,omitempty"` } -func (x *StatePort) Reset() { - *x = StatePort{} +func (x *Event) Reset() { + *x = Event{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35816,13 +36188,13 @@ func (x *StatePort) Reset() { } } -func (x *StatePort) String() string { +func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort) ProtoMessage() {} +func (*Event) ProtoMessage() {} -func (x *StatePort) ProtoReflect() protoreflect.Message { +func (x *Event) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35834,47 +36206,58 @@ func (x *StatePort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. -func (*StatePort) Descriptor() ([]byte, []int) { +// Deprecated: Use Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{207} } -func (x *StatePort) GetChoice() StatePort_Choice_Enum { - if x != nil { - return x.Choice +func (x *Event) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StatePort_Choice_unspecified + return false } -func (x *StatePort) GetLink() *StatePortLink { +func (x *Event) GetLink() *EventLink { if x != nil { return x.Link } return nil } -func (x *StatePort) GetCapture() *StatePortCapture { +func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { if x != nil { - return x.Capture + return x.RxRateThreshold } return nil } -// States associated with configured flows -type StateTraffic struct { +func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { + if x != nil { + return x.RouteAdvertiseWithdraw + } + return nil +} + +// The optional container for rx rate threshold event configuration. +type EventRxRateThreshold struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3,oneof" json:"flow_transmit,omitempty"` + // True to enable the rx_rate_threshold event. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // True to enable notifications when the rx rate of a flow passes above + // or below the threshold value. + // default = 95 + Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` } -func (x *StateTraffic) Reset() { - *x = StateTraffic{} +func (x *EventRxRateThreshold) Reset() { + *x = EventRxRateThreshold{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35882,13 +36265,13 @@ func (x *StateTraffic) Reset() { } } -func (x *StateTraffic) String() string { +func (x *EventRxRateThreshold) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic) ProtoMessage() {} +func (*EventRxRateThreshold) ProtoMessage() {} -func (x *StateTraffic) ProtoReflect() protoreflect.Message { +func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35900,44 +36283,38 @@ func (x *StateTraffic) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. -func (*StateTraffic) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. +func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{208} } -func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { - if x != nil { - return x.Choice +func (x *EventRxRateThreshold) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StateTraffic_Choice_unspecified + return false } -func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { - if x != nil { - return x.FlowTransmit +func (x *EventRxRateThreshold) GetThreshold() float32 { + if x != nil && x.Threshold != nil { + return *x.Threshold } - return nil + return 0 } -// States associated with protocols on configured resources. -type StateProtocol struct { +// The optional container for link up/down event configuration. +type EventLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3,oneof" json:"all,omitempty"` - // Description missing in models - Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3,oneof" json:"route,omitempty"` - // Description missing in models - Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + // True to enable notifications when a link up/down event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *StateProtocol) Reset() { - *x = StateProtocol{} +func (x *EventLink) Reset() { + *x = EventLink{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35945,13 +36322,13 @@ func (x *StateProtocol) Reset() { } } -func (x *StateProtocol) String() string { +func (x *EventLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol) ProtoMessage() {} +func (*EventLink) ProtoMessage() {} -func (x *StateProtocol) ProtoReflect() protoreflect.Message { +func (x *EventLink) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35963,60 +36340,32 @@ func (x *StateProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. -func (*StateProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. +func (*EventLink) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{209} } -func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return StateProtocol_Choice_unspecified -} - -func (x *StateProtocol) GetAll() *StateProtocolAll { - if x != nil { - return x.All - } - return nil -} - -func (x *StateProtocol) GetRoute() *StateProtocolRoute { - if x != nil { - return x.Route - } - return nil -} - -func (x *StateProtocol) GetLacp() *StateProtocolLacp { - if x != nil { - return x.Lacp +func (x *EventLink) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return nil + return false } -// Sets the link of configured ports. -type StatePortLink struct { +// The optional container for route advertise/withdraw event configuration. +type EventRouteAdvertiseWithdraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of target ports. An empty or null list will target all ports. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The link state. - // required = true - State StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum" json:"state,omitempty"` + // True to enable notifications when a route advertise/withdraw + // event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *StatePortLink) Reset() { - *x = StatePortLink{} +func (x *EventRouteAdvertiseWithdraw) Reset() { + *x = EventRouteAdvertiseWithdraw{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36024,13 +36373,13 @@ func (x *StatePortLink) Reset() { } } -func (x *StatePortLink) String() string { +func (x *EventRouteAdvertiseWithdraw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink) ProtoMessage() {} +func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} -func (x *StatePortLink) ProtoReflect() protoreflect.Message { +func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36042,49 +36391,44 @@ func (x *StatePortLink) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. -func (*StatePortLink) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. +func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{210} } -func (x *StatePortLink) GetPortNames() []string { - if x != nil { - return x.PortNames - } - return nil -} - -func (x *StatePortLink) GetState() StatePortLink_State_Enum { - if x != nil { - return x.State +func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StatePortLink_State_unspecified + return false } -// Sets the capture state of configured ports -type StatePortCapture struct { +// Description missing in models +type EventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ports to which the capture state will be applied to. If the list of - // port_names is empty or null the state will be applied to all configured ports. - // If the list is not empty any port that is not included in the list of port_names - // MUST be ignored and not included in the state change. + // Constrain the events being returned by specifying event types. + // If the list is empty then all event types will be returned. + Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` + // Constrain the events being returned by specifying event sources. + // If the list is empty then all event sources will be returned. // // x-constraint: // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name // // x-constraint: // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The capture state. - // required = true - State StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum" json:"state,omitempty"` + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name + Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` } -func (x *StatePortCapture) Reset() { - *x = StatePortCapture{} +func (x *EventRequest) Reset() { + *x = EventRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36092,13 +36436,13 @@ func (x *StatePortCapture) Reset() { } } -func (x *StatePortCapture) String() string { +func (x *EventRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture) ProtoMessage() {} +func (*EventRequest) ProtoMessage() {} -func (x *StatePortCapture) ProtoReflect() protoreflect.Message { +func (x *EventRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36110,60 +36454,43 @@ func (x *StatePortCapture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. -func (*StatePortCapture) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. +func (*EventRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{211} } -func (x *StatePortCapture) GetPortNames() []string { +func (x *EventRequest) GetType() []EventRequest_Type_Enum { if x != nil { - return x.PortNames + return x.Type } return nil } -func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { +func (x *EventRequest) GetSource() []string { if x != nil { - return x.State + return x.Source } - return StatePortCapture_State_unspecified + return nil } -// Provides state control of flow transmission. -type StateTrafficFlowTransmit struct { +// A container that describes what events a system should provide and +// optionally where to publish them. +type EventSubscription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of flows to which the transmit state will be applied to. If the list of - // flow_names is empty or null the state will be applied to all configured flows. - // If the list is not empty any flow that is not included in the list of flow_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Flow/properties/name - // - // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The transmit state. - // If the value of the state property is 'start' then all flows defined by the 'flow_names' - // property will be started and the metric counters MUST be cleared prior to starting - // the flow(s). - // If the value of the state property is 'stop' then all flows defined by the 'flow_names' - // property will be stopped and the metric counters MUST NOT be cleared. - // If the value of the state property is 'pause' then all flows defined by the 'flow_names' - // property will be paused and the metric counters MUST NOT be cleared. - // If the value of the state property is 'resume' then any paused flows defined by the - // 'flow_names' property will start transmit at the point at which they were paused. - // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) - // MUST NOT have their metric counters cleared. - // required = true - State StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum" json:"state,omitempty"` + // Description missing in models + Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3,oneof" json:"events,omitempty"` + // Indicates where a client wants to be notified of the events set in + // the events property. + // If this property is empty or null then no event notifications will + // be forwarded. + CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` } -func (x *StateTrafficFlowTransmit) Reset() { - *x = StateTrafficFlowTransmit{} +func (x *EventSubscription) Reset() { + *x = EventSubscription{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36171,13 +36498,13 @@ func (x *StateTrafficFlowTransmit) Reset() { } } -func (x *StateTrafficFlowTransmit) String() string { +func (x *EventSubscription) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit) ProtoMessage() {} +func (*EventSubscription) ProtoMessage() {} -func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { +func (x *EventSubscription) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36189,41 +36516,62 @@ func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { +// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. +func (*EventSubscription) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{212} } -func (x *StateTrafficFlowTransmit) GetFlowNames() []string { +func (x *EventSubscription) GetEvents() *EventRequest { if x != nil { - return x.FlowNames + return x.Events } return nil } -func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { - if x != nil { - return x.State +func (x *EventSubscription) GetCallbackUrl() string { + if x != nil && x.CallbackUrl != nil { + return *x.CallbackUrl } - return StateTrafficFlowTransmit_State_unspecified + return "" } -// Sets all configured protocols to `start` or `stop` state. -// Setting protocol state to `start` shall be a no-op if preceding `set_config` API -// call was made with `config.options.protocol_options.auto_start_all` set to `true` -// or if all the configured protocols are already started. -type StateProtocolAll struct { +// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf +type Lldp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Protocol states + // The unique name of the object on which LLDP is running. // required = true - State StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum" json:"state,omitempty"` + Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint + // identifier associated with the transmitting LLDP agent. If mac address is specified + // it should be in colon seperated mac address format. + ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + // Specifies the amount of time in seconds a receiving device should maintain LLDP information + // sent by the device before discarding it. + // default = 120 + HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` + // Set the transmission frequency of LLDP updates in seconds. + // default = 30 + AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` } -func (x *StateProtocolAll) Reset() { - *x = StateProtocolAll{} +func (x *Lldp) Reset() { + *x = Lldp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36231,13 +36579,13 @@ func (x *StateProtocolAll) Reset() { } } -func (x *StateProtocolAll) String() string { +func (x *Lldp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll) ProtoMessage() {} +func (*Lldp) ProtoMessage() {} -func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { +func (x *Lldp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36249,46 +36597,81 @@ func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. -func (*StateProtocolAll) Descriptor() ([]byte, []int) { +// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. +func (*Lldp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{213} } -func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { +func (x *Lldp) GetConnection() *LldpConnection { if x != nil { - return x.State + return x.Connection } - return StateProtocolAll_State_unspecified + return nil } -// Sets the state of configured routes -type StateProtocolRoute struct { +func (x *Lldp) GetChassisId() *LldpChassisId { + if x != nil { + return x.ChassisId + } + return nil +} + +func (x *Lldp) GetPortId() *LldpPortId { + if x != nil { + return x.PortId + } + return nil +} + +func (x *Lldp) GetSystemName() *LldpSystemName { + if x != nil { + return x.SystemName + } + return nil +} + +func (x *Lldp) GetHoldTime() uint32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime + } + return 0 +} + +func (x *Lldp) GetAdvertisementInterval() uint32 { + if x != nil && x.AdvertisementInterval != nil { + return *x.AdvertisementInterval + } + return 0 +} + +func (x *Lldp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// LLDP connection to a test port. In future if more connection options arise LLDP +// connection object will be enhanced. +type LldpConnection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device route objects to control. If no names are specified then all - // route objects that match the x-constraint will be affected. + // The name of the test port or other connection objects on which LLDP is configured. + Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` + // Name of the test port on which LLDP is configured on. // // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Port/properties/name // // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Route states - // required = true - State StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum" json:"state,omitempty"` + // - /components/schemas/Port/properties/name + PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` } -func (x *StateProtocolRoute) Reset() { - *x = StateProtocolRoute{} +func (x *LldpConnection) Reset() { + *x = LldpConnection{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36296,13 +36679,13 @@ func (x *StateProtocolRoute) Reset() { } } -func (x *StateProtocolRoute) String() string { +func (x *LldpConnection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute) ProtoMessage() {} +func (*LldpConnection) ProtoMessage() {} -func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { +func (x *LldpConnection) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36314,40 +36697,47 @@ func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. +func (*LldpConnection) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{214} } -func (x *StateProtocolRoute) GetNames() []string { - if x != nil { - return x.Names +func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpConnection_Choice_unspecified } -func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { - if x != nil { - return x.State +func (x *LldpConnection) GetPortName() string { + if x != nil && x.PortName != nil { + return *x.PortName } - return StateProtocolRoute_State_unspecified + return "" } -// Sets state of configured LACP -type StateProtocolLacp struct { +// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint +// identifier associated with the transmitting LLDP agent. This field identifies the +// format and source of the chassis identifier string. It is based on the enumerator +// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. +type LldpChassisId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Chassis ID subtype to be used in Chassis ID TLV. + // default = Choice.Enum.mac_address_subtype + Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // required = true - Choice StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3,oneof" json:"admin,omitempty"` + MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` + // Name of an interface of the chassis that uniquely identifies the chassis. + InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + // Locally assigned name of the chassis. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *StateProtocolLacp) Reset() { - *x = StateProtocolLacp{} +func (x *LldpChassisId) Reset() { + *x = LldpChassisId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36355,13 +36745,13 @@ func (x *StateProtocolLacp) Reset() { } } -func (x *StateProtocolLacp) String() string { +func (x *LldpChassisId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp) ProtoMessage() {} +func (*LldpChassisId) ProtoMessage() {} -func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { +func (x *LldpChassisId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36373,49 +36763,61 @@ func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. +func (*LldpChassisId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{215} } -func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return StateProtocolLacp_Choice_unspecified + return LldpChassisId_Choice_unspecified } -func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { +func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { if x != nil { - return x.Admin + return x.MacAddressSubtype } return nil } -// Sets admin state of LACP configured on LAG members -type StateProtocolLacpAdmin struct { +func (x *LldpChassisId) GetInterfaceNameSubtype() string { + if x != nil && x.InterfaceNameSubtype != nil { + return *x.InterfaceNameSubtype + } + return "" +} + +func (x *LldpChassisId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype + } + return "" +} + +// The Port ID is a mandatory TLV which identifies the port component of the endpoint +// identifier associated with the transmitting LLDP agent.This field identifies the +// format and source of the port identifier string. It is based on the enumerator defined +// by the PtopoPortIdType object from RFC2922. +type LldpPortId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` - // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected - // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member - // ports. - // required = true - State StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum" json:"state,omitempty"` + // Port ID subtype to be used in Port ID TLV. + // default = Choice.Enum.interface_name_subtype + Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` + // The MAC Address configured in the Port ID TLV. + MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` + // Description missing in models + InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + // The Locally assigned name configured in the Port ID TLV. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *StateProtocolLacpAdmin) Reset() { - *x = StateProtocolLacpAdmin{} +func (x *LldpPortId) Reset() { + *x = LldpPortId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36423,13 +36825,13 @@ func (x *StateProtocolLacpAdmin) Reset() { } } -func (x *StateProtocolLacpAdmin) String() string { +func (x *LldpPortId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin) ProtoMessage() {} +func (*LldpPortId) ProtoMessage() {} -func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { +func (x *LldpPortId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36441,40 +36843,57 @@ func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. +func (*LldpPortId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{216} } -func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { +func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return LldpPortId_Choice_unspecified +} + +func (x *LldpPortId) GetMacAddressSubtype() string { + if x != nil && x.MacAddressSubtype != nil { + return *x.MacAddressSubtype + } + return "" +} + +func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { if x != nil { - return x.LagMemberNames + return x.InterfaceNameSubtype } return nil } -func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { - if x != nil { - return x.State +func (x *LldpPortId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype } - return StateProtocolLacpAdmin_State_unspecified + return "" } -// Request for triggering action against configured resources. -type ControlAction struct { +// The MAC address configured in the Chassis ID TLV. +type LldpChassisMacSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ControlAction) Reset() { - *x = ControlAction{} +func (x *LldpChassisMacSubType) Reset() { + *x = LldpChassisMacSubType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36482,13 +36901,13 @@ func (x *ControlAction) Reset() { } } -func (x *ControlAction) String() string { +func (x *LldpChassisMacSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction) ProtoMessage() {} +func (*LldpChassisMacSubType) ProtoMessage() {} -func (x *ControlAction) ProtoReflect() protoreflect.Message { +func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36500,39 +36919,50 @@ func (x *ControlAction) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. -func (*ControlAction) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{217} } -func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ControlAction_Choice_unspecified + return LldpChassisMacSubType_Choice_unspecified } -func (x *ControlAction) GetProtocol() *ActionProtocol { - if x != nil { - return x.Protocol +func (x *LldpChassisMacSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Response for action triggered against configured resources along with warnings. -type ControlActionResponse struct { +func (x *LldpChassisMacSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// The interface name configured in the Port ID TLV. +type LldpPortInterfaceNameSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of warnings generated while triggering specified action - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` - // Description missing in models - Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof" json:"response,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ControlActionResponse) Reset() { - *x = ControlActionResponse{} +func (x *LldpPortInterfaceNameSubType) Reset() { + *x = LldpPortInterfaceNameSubType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36540,13 +36970,13 @@ func (x *ControlActionResponse) Reset() { } } -func (x *ControlActionResponse) String() string { +func (x *LldpPortInterfaceNameSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlActionResponse) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType) ProtoMessage() {} -func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { +func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36558,40 +36988,50 @@ func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. -func (*ControlActionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{218} } -func (x *ControlActionResponse) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpPortInterfaceNameSubType_Choice_unspecified } -func (x *ControlActionResponse) GetResponse() *ActionResponse { - if x != nil { - return x.Response +func (x *LldpPortInterfaceNameSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Response for action triggered against configured resources. -type ActionResponse struct { +func (x *LldpPortInterfaceNameSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// The system Name configured in the System Name TLV. +type LldpSystemName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ActionResponse) Reset() { - *x = ActionResponse{} +func (x *LldpSystemName) Reset() { + *x = LldpSystemName{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36599,13 +37039,13 @@ func (x *ActionResponse) Reset() { } } -func (x *ActionResponse) String() string { +func (x *LldpSystemName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse) ProtoMessage() {} +func (*LldpSystemName) ProtoMessage() {} -func (x *ActionResponse) ProtoReflect() protoreflect.Message { +func (x *LldpSystemName) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36617,44 +37057,56 @@ func (x *ActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. -func (*ActionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. +func (*LldpSystemName) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{219} } -func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ActionResponse_Choice_unspecified + return LldpSystemName_Choice_unspecified } -func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { - if x != nil { - return x.Protocol +func (x *LldpSystemName) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Actions associated with protocols on configured resources. -type ActionProtocol struct { +func (x *LldpSystemName) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// Error response generated while serving API request. +type Error struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Numeric status code based on the underlying transport being used. + // The API server MUST set this code explicitly based on following references: + // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 + // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 + // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // required = true - Choice ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` - // Description missing in models - Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + // Classification of error originating from within API server that may not be mapped + // to the value in `code`. + // Absence of this field may indicate that the error did not originate from within API + // server. + Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` + // List of error messages generated while executing the request. + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` } -func (x *ActionProtocol) Reset() { - *x = ActionProtocol{} +func (x *Error) Reset() { + *x = Error{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36662,13 +37114,13 @@ func (x *ActionProtocol) Reset() { } } -func (x *ActionProtocol) String() string { +func (x *Error) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol) ProtoMessage() {} +func (*Error) ProtoMessage() {} -func (x *ActionProtocol) ProtoReflect() protoreflect.Message { +func (x *Error) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36680,56 +37132,45 @@ func (x *ActionProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. -func (*ActionProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{220} } -func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionProtocol_Choice_unspecified -} - -func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { +func (x *Error) GetCode() int32 { if x != nil { - return x.Ipv4 + return x.Code } - return nil + return 0 } -func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { - if x != nil { - return x.Ipv6 +func (x *Error) GetKind() Error_Kind_Enum { + if x != nil && x.Kind != nil { + return *x.Kind } - return nil + return Error_Kind_unspecified } -func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { +func (x *Error) GetErrors() []string { if x != nil { - return x.Bgp + return x.Errors } return nil } -// Response for actions associated with protocols on configured resources. -type ActionResponseProtocol struct { +// A list of warnings that have occurred while executing the request. +type Warning struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + // A list of any system specific warnings that have occurred while + // executing the request. + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` } -func (x *ActionResponseProtocol) Reset() { - *x = ActionResponseProtocol{} +func (x *Warning) Reset() { + *x = Warning{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36737,13 +37178,13 @@ func (x *ActionResponseProtocol) Reset() { } } -func (x *ActionResponseProtocol) String() string { +func (x *Warning) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol) ProtoMessage() {} +func (*Warning) ProtoMessage() {} -func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { +func (x *Warning) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36755,47 +37196,32 @@ func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use Warning.ProtoReflect.Descriptor instead. +func (*Warning) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{221} } -func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionResponseProtocol_Choice_unspecified -} - -func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { - if x != nil { - return x.Ipv4 - } - return nil -} - -func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { +func (x *Warning) GetWarnings() []string { if x != nil { - return x.Ipv6 + return x.Warnings } return nil } -// Actions associated with IPv4 on configured resources. -type ActionProtocolIpv4 struct { +// Request for updating specific attributes of resources in traffic generator +type ConfigUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3,oneof" json:"flows,omitempty"` } -func (x *ActionProtocolIpv4) Reset() { - *x = ActionProtocolIpv4{} +func (x *ConfigUpdate) Reset() { + *x = ConfigUpdate{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36803,13 +37229,13 @@ func (x *ActionProtocolIpv4) Reset() { } } -func (x *ActionProtocolIpv4) String() string { +func (x *ConfigUpdate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4) ProtoMessage() {} +func (*ConfigUpdate) ProtoMessage() {} -func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { +func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36821,40 +37247,40 @@ func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. +func (*ConfigUpdate) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{222} } -func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { - if x != nil { - return x.Choice +func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ActionProtocolIpv4_Choice_unspecified + return ConfigUpdate_Choice_unspecified } -func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { +func (x *ConfigUpdate) GetFlows() *FlowsUpdate { if x != nil { - return x.Ping + return x.Flows } return nil } -// Response for actions associated with IPv4 on configured resources. -type ActionResponseProtocolIpv4 struct { +// A container of flows with associated properties to be updated without affecting the +// flows current transmit state. +type FlowsUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + // Flow properties to be updated without affecting the transmit state. + PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` + // The list of configured flows for which given property will be updated. + Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` } -func (x *ActionResponseProtocolIpv4) Reset() { - *x = ActionResponseProtocolIpv4{} +func (x *FlowsUpdate) Reset() { + *x = FlowsUpdate{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36862,13 +37288,13 @@ func (x *ActionResponseProtocolIpv4) Reset() { } } -func (x *ActionResponseProtocolIpv4) String() string { +func (x *FlowsUpdate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4) ProtoMessage() {} +func (*FlowsUpdate) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { +func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36880,37 +37306,44 @@ func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. +func (*FlowsUpdate) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{223} } -func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { +func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { if x != nil { - return x.Choice + return x.PropertyNames } - return ActionResponseProtocolIpv4_Choice_unspecified + return nil } -func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { +func (x *FlowsUpdate) GetFlows() []*Flow { if x != nil { - return x.Ping + return x.Flows } return nil } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv4Ping struct { +// Request for setting operational state of configured resources. +type ControlState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 ping requests. - Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // Description missing in models + // required = true + Choice ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + // Description missing in models + Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3,oneof" json:"traffic,omitempty"` } -func (x *ActionProtocolIpv4Ping) Reset() { - *x = ActionProtocolIpv4Ping{} +func (x *ControlState) Reset() { + *x = ControlState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36918,13 +37351,13 @@ func (x *ActionProtocolIpv4Ping) Reset() { } } -func (x *ActionProtocolIpv4Ping) String() string { +func (x *ControlState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4Ping) ProtoMessage() {} +func (*ControlState) ProtoMessage() {} -func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { +func (x *ControlState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36936,44 +37369,56 @@ func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. +func (*ControlState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{224} } -func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { +func (x *ControlState) GetChoice() ControlState_Choice_Enum { if x != nil { - return x.Requests + return x.Choice + } + return ControlState_Choice_unspecified +} + +func (x *ControlState) GetPort() *StatePort { + if x != nil { + return x.Port } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv4PingRequest struct { +func (x *ControlState) GetProtocol() *StateProtocol { + if x != nil { + return x.Protocol + } + return nil +} + +func (x *ControlState) GetTraffic() *StateTraffic { + if x != nil { + return x.Traffic + } + return nil +} + +// States associated with configured ports. +type StatePort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv4 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Description missing in models + // required = true + Choice StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + // Description missing in models + Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3,oneof" json:"capture,omitempty"` } -func (x *ActionProtocolIpv4PingRequest) Reset() { - *x = ActionProtocolIpv4PingRequest{} +func (x *StatePort) Reset() { + *x = StatePort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36981,13 +37426,13 @@ func (x *ActionProtocolIpv4PingRequest) Reset() { } } -func (x *ActionProtocolIpv4PingRequest) String() string { +func (x *StatePort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} +func (*StatePort) ProtoMessage() {} -func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { +func (x *StatePort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36999,37 +37444,47 @@ func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. +func (*StatePort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{225} } -func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *StatePort) GetChoice() StatePort_Choice_Enum { + if x != nil { + return x.Choice } - return "" + return StatePort_Choice_unspecified } -func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *StatePort) GetLink() *StatePortLink { + if x != nil { + return x.Link } - return "" + return nil } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv4Ping struct { +func (x *StatePort) GetCapture() *StatePortCapture { + if x != nil { + return x.Capture + } + return nil +} + +// States associated with configured flows +type StateTraffic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv4 ping responses. - Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // Description missing in models + // required = true + Choice StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3,oneof" json:"flow_transmit,omitempty"` } -func (x *ActionResponseProtocolIpv4Ping) Reset() { - *x = ActionResponseProtocolIpv4Ping{} +func (x *StateTraffic) Reset() { + *x = StateTraffic{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37037,13 +37492,13 @@ func (x *ActionResponseProtocolIpv4Ping) Reset() { } } -func (x *ActionResponseProtocolIpv4Ping) String() string { +func (x *StateTraffic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} +func (*StateTraffic) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { +func (x *StateTraffic) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37055,44 +37510,44 @@ func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. +func (*StateTraffic) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{226} } -func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { +func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { if x != nil { - return x.Responses + return x.Choice + } + return StateTraffic_Choice_unspecified +} + +func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { + if x != nil { + return x.FlowTransmit } return nil } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv4PingResponse struct { +// States associated with protocols on configured resources. +type StateProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` - // Destination IPv4 address used for ping. - // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - // Result of the ping request. + // Description missing in models // required = true - Result ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum" json:"result,omitempty"` + Choice StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3,oneof" json:"all,omitempty"` + // Description missing in models + Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3,oneof" json:"route,omitempty"` + // Description missing in models + Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` } -func (x *ActionResponseProtocolIpv4PingResponse) Reset() { - *x = ActionResponseProtocolIpv4PingResponse{} +func (x *StateProtocol) Reset() { + *x = StateProtocol{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37100,13 +37555,13 @@ func (x *ActionResponseProtocolIpv4PingResponse) Reset() { } } -func (x *ActionResponseProtocolIpv4PingResponse) String() string { +func (x *StateProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} +func (*StateProtocol) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { +func (x *StateProtocol) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37118,47 +37573,60 @@ func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. +func (*StateProtocol) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{227} } -func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { +func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { if x != nil { - return x.SrcName + return x.Choice } - return "" + return StateProtocol_Choice_unspecified } -func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { +func (x *StateProtocol) GetAll() *StateProtocolAll { if x != nil { - return x.DstIp + return x.All } - return "" + return nil } -func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { +func (x *StateProtocol) GetRoute() *StateProtocolRoute { if x != nil { - return x.Result + return x.Route } - return ActionResponseProtocolIpv4PingResponse_Result_unspecified + return nil } -// Actions associated with IPv6 on configured resources. -type ActionProtocolIpv6 struct { +func (x *StateProtocol) GetLacp() *StateProtocolLacp { + if x != nil { + return x.Lacp + } + return nil +} + +// Sets the link of configured ports. +type StatePortLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of target ports. An empty or null list will target all ports. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The link state. // required = true - Choice ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + State StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6) Reset() { - *x = ActionProtocolIpv6{} +func (x *StatePortLink) Reset() { + *x = StatePortLink{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37166,13 +37634,13 @@ func (x *ActionProtocolIpv6) Reset() { } } -func (x *ActionProtocolIpv6) String() string { +func (x *StatePortLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6) ProtoMessage() {} +func (*StatePortLink) ProtoMessage() {} -func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { +func (x *StatePortLink) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37184,40 +37652,49 @@ func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. +func (*StatePortLink) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{228} } -func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { +func (x *StatePortLink) GetPortNames() []string { if x != nil { - return x.Choice + return x.PortNames } - return ActionProtocolIpv6_Choice_unspecified + return nil } -func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { +func (x *StatePortLink) GetState() StatePortLink_State_Enum { if x != nil { - return x.Ping + return x.State } - return nil + return StatePortLink_State_unspecified } -// Response for actions associated with IPv6 on configured resources. -type ActionResponseProtocolIpv6 struct { +// Sets the capture state of configured ports +type StatePortCapture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of ports to which the capture state will be applied to. If the list of + // port_names is empty or null the state will be applied to all configured ports. + // If the list is not empty any port that is not included in the list of port_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The capture state. // required = true - Choice ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + State StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum" json:"state,omitempty"` } -func (x *ActionResponseProtocolIpv6) Reset() { - *x = ActionResponseProtocolIpv6{} +func (x *StatePortCapture) Reset() { + *x = StatePortCapture{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37225,13 +37702,13 @@ func (x *ActionResponseProtocolIpv6) Reset() { } } -func (x *ActionResponseProtocolIpv6) String() string { +func (x *StatePortCapture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6) ProtoMessage() {} +func (*StatePortCapture) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { +func (x *StatePortCapture) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37243,37 +37720,60 @@ func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. +func (*StatePortCapture) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{229} } -func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { +func (x *StatePortCapture) GetPortNames() []string { if x != nil { - return x.Choice + return x.PortNames } - return ActionResponseProtocolIpv6_Choice_unspecified + return nil } -func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { +func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { if x != nil { - return x.Ping + return x.State } - return nil + return StatePortCapture_State_unspecified } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv6Ping struct { +// Provides state control of flow transmission. +type StateTrafficFlowTransmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv6 ping requests. - Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // The names of flows to which the transmit state will be applied to. If the list of + // flow_names is empty or null the state will be applied to all configured flows. + // If the list is not empty any flow that is not included in the list of flow_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The transmit state. + // If the value of the state property is 'start' then all flows defined by the 'flow_names' + // property will be started and the metric counters MUST be cleared prior to starting + // the flow(s). + // If the value of the state property is 'stop' then all flows defined by the 'flow_names' + // property will be stopped and the metric counters MUST NOT be cleared. + // If the value of the state property is 'pause' then all flows defined by the 'flow_names' + // property will be paused and the metric counters MUST NOT be cleared. + // If the value of the state property is 'resume' then any paused flows defined by the + // 'flow_names' property will start transmit at the point at which they were paused. + // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) + // MUST NOT have their metric counters cleared. + // required = true + State StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6Ping) Reset() { - *x = ActionProtocolIpv6Ping{} +func (x *StateTrafficFlowTransmit) Reset() { + *x = StateTrafficFlowTransmit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37281,13 +37781,13 @@ func (x *ActionProtocolIpv6Ping) Reset() { } } -func (x *ActionProtocolIpv6Ping) String() string { +func (x *StateTrafficFlowTransmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6Ping) ProtoMessage() {} +func (*StateTrafficFlowTransmit) ProtoMessage() {} -func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { +func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37299,44 +37799,41 @@ func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{230} } -func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { +func (x *StateTrafficFlowTransmit) GetFlowNames() []string { if x != nil { - return x.Requests + return x.FlowNames } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv6PingRequest struct { +func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { + if x != nil { + return x.State + } + return StateTrafficFlowTransmit_State_unspecified +} + +// Sets all configured protocols to `start` or `stop` state. +// Setting protocol state to `start` shall be a no-op if preceding `set_config` API +// call was made with `config.options.protocol_options.auto_start_all` set to `true` +// or if all the configured protocols are already started. +type StateProtocolAll struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv6 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Protocol states + // required = true + State StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6PingRequest) Reset() { - *x = ActionProtocolIpv6PingRequest{} +func (x *StateProtocolAll) Reset() { + *x = StateProtocolAll{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37344,13 +37841,13 @@ func (x *ActionProtocolIpv6PingRequest) Reset() { } } -func (x *ActionProtocolIpv6PingRequest) String() string { +func (x *StateProtocolAll) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} +func (*StateProtocolAll) ProtoMessage() {} -func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { +func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37362,37 +37859,46 @@ func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. +func (*StateProtocolAll) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{231} } -func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName - } - return "" -} - -func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { + if x != nil { + return x.State } - return "" + return StateProtocolAll_State_unspecified } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv6Ping struct { +// Sets the state of configured routes +type StateProtocolRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv6 ping responses. - Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // The names of device route objects to control. If no names are specified then all + // route objects that match the x-constraint will be affected. + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Route states + // required = true + State StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum" json:"state,omitempty"` } -func (x *ActionResponseProtocolIpv6Ping) Reset() { - *x = ActionResponseProtocolIpv6Ping{} +func (x *StateProtocolRoute) Reset() { + *x = StateProtocolRoute{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37400,13 +37906,13 @@ func (x *ActionResponseProtocolIpv6Ping) Reset() { } } -func (x *ActionResponseProtocolIpv6Ping) String() string { +func (x *StateProtocolRoute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} +func (*StateProtocolRoute) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { +func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37418,44 +37924,40 @@ func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{232} } -func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { +func (x *StateProtocolRoute) GetNames() []string { if x != nil { - return x.Responses + return x.Names } return nil } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv6PingResponse struct { +func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { + if x != nil { + return x.State + } + return StateProtocolRoute_State_unspecified +} + +// Sets state of configured LACP +type StateProtocolLacp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` - // Destination IPv6 address used for ping. - // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - // Result of the ping request. + // Description missing in models // required = true - Result ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum" json:"result,omitempty"` + Choice StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3,oneof" json:"admin,omitempty"` } -func (x *ActionResponseProtocolIpv6PingResponse) Reset() { - *x = ActionResponseProtocolIpv6PingResponse{} +func (x *StateProtocolLacp) Reset() { + *x = StateProtocolLacp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37463,13 +37965,13 @@ func (x *ActionResponseProtocolIpv6PingResponse) Reset() { } } -func (x *ActionResponseProtocolIpv6PingResponse) String() string { +func (x *StateProtocolLacp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} +func (*StateProtocolLacp) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37481,49 +37983,49 @@ func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{233} } -func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { - if x != nil { - return x.SrcName - } - return "" -} - -func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { +func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { if x != nil { - return x.DstIp + return x.Choice } - return "" + return StateProtocolLacp_Choice_unspecified } -func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { +func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { if x != nil { - return x.Result + return x.Admin } - return ActionResponseProtocolIpv6PingResponse_Result_unspecified + return nil } -// Actions associated with BGP on configured resources. -type ActionProtocolBgp struct { +// Sets admin state of LACP configured on LAG members +type StateProtocolLacpAdmin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of LAG members (ports) for which the state has to be applied. An empty + // or null list will control all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` + // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected + // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member + // ports. // required = true - Choice ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3,oneof" json:"notification,omitempty"` - // Description missing in models - InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3,oneof" json:"initiate_graceful_restart,omitempty"` + State StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolBgp) Reset() { - *x = ActionProtocolBgp{} +func (x *StateProtocolLacpAdmin) Reset() { + *x = StateProtocolLacpAdmin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37531,13 +38033,13 @@ func (x *ActionProtocolBgp) Reset() { } } -func (x *ActionProtocolBgp) String() string { +func (x *StateProtocolLacpAdmin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp) ProtoMessage() {} +func (*StateProtocolLacpAdmin) ProtoMessage() {} -func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37549,79 +38051,40 @@ func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{234} } -func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionProtocolBgp_Choice_unspecified -} - -func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { +func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { if x != nil { - return x.Notification + return x.LagMemberNames } return nil } -func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { +func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { if x != nil { - return x.InitiateGracefulRestart + return x.State } - return nil + return StateProtocolLacpAdmin_State_unspecified } -// A NOTIFICATION message is sent when an error is detected with the BGP session, such -// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. -// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of -// specified BGP peers. If a user wants to send custom Error Code and Error Subcode -// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs -// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. -type ActionProtocolBgpNotification struct { +// Request for triggering action against configured resources. +type ControlAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION - // will be sent to all configured BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Each BGP NOTIFICATION message includes an Error Code field indicating what type of - // problem occurred. For certain Error Codes, an Error Subcode field provides additional - // details about the specific nature of the problem. The choice value will provide - // the Error Code used in NOTIFICATION message. The Subcode can be set for each of - // the corresponding errors except for Hold Timer Expired error and BGP Finite State - // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to - // use non zero Sub Code then custom choice can be used. - // default = Choice.Enum.cease - Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3,oneof" json:"cease,omitempty"` - // Description missing in models - MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3,oneof" json:"message_header_error,omitempty"` - // Description missing in models - OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3,oneof" json:"open_message_error,omitempty"` // Description missing in models - UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3,oneof" json:"update_message_error,omitempty"` - // Description missing in models - HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3,oneof" json:"hold_timer_expired,omitempty"` - // Description missing in models - FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3,oneof" json:"finite_state_machine_error,omitempty"` + // required = true + Choice ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum" json:"choice,omitempty"` // Description missing in models - Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` } -func (x *ActionProtocolBgpNotification) Reset() { - *x = ActionProtocolBgpNotification{} +func (x *ControlAction) Reset() { + *x = ControlAction{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37629,13 +38092,13 @@ func (x *ActionProtocolBgpNotification) Reset() { } } -func (x *ActionProtocolBgpNotification) String() string { +func (x *ControlAction) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification) ProtoMessage() {} +func (*ControlAction) ProtoMessage() {} -func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { +func (x *ControlAction) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37647,113 +38110,113 @@ func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { +// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. +func (*ControlAction) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{235} } -func (x *ActionProtocolBgpNotification) GetNames() []string { +func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { if x != nil { - return x.Names - } - return nil -} - -func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice + return x.Choice } - return ActionProtocolBgpNotification_Choice_unspecified + return ControlAction_Choice_unspecified } -func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { +func (x *ControlAction) GetProtocol() *ActionProtocol { if x != nil { - return x.Cease + return x.Protocol } return nil } -func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { - if x != nil { - return x.MessageHeaderError - } - return nil +// Response for action triggered against configured resources along with warnings. +type ControlActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of warnings generated while triggering specified action + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // Description missing in models + Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof" json:"response,omitempty"` } -func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { - if x != nil { - return x.OpenMessageError +func (x *ControlActionResponse) Reset() { + *x = ControlActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[236] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { - if x != nil { - return x.UpdateMessageError - } - return nil +func (x *ControlActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { - if x != nil { - return x.HoldTimerExpired +func (*ControlActionResponse) ProtoMessage() {} + +func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[236] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { +// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. +func (*ControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{236} +} + +func (x *ControlActionResponse) GetWarnings() []string { if x != nil { - return x.FiniteStateMachineError + return x.Warnings } return nil } -func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { +func (x *ControlActionResponse) GetResponse() *ActionResponse { if x != nil { - return x.Custom + return x.Response } return nil } -// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is -// specified then Graceful Restart will be sent to all configured BGP peers. -type ActionProtocolBgpInitiateGracefulRestart struct { +// Response for action triggered against configured resources. +type ActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device BGP peers objects to control. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // Duration (in seconds) after which selected BGP peers will initiate - // Graceful restart by sending the Open Message with Restart State bit set in the Graceful - // Restart capability. - // default = 30 - RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` + // Description missing in models + // required = true + Choice ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` } -func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { - *x = ActionProtocolBgpInitiateGracefulRestart{} +func (x *ActionResponse) Reset() { + *x = ActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[236] + mi := &file_otg_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { +func (x *ActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} +func (*ActionResponse) ProtoMessage() {} -func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[236] +func (x *ActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37764,71 +38227,59 @@ func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{236} +// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. +func (*ActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{237} } -func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { +func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { if x != nil { - return x.PeerNames + return x.Choice } - return nil + return ActionResponse_Choice_unspecified } -func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { - if x != nil && x.RestartDelay != nil { - return *x.RestartDelay +func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { + if x != nil { + return x.Protocol } - return 0 + return nil } -// Request to traffic generator for metrics of choice. -type MetricsRequest struct { +// Actions associated with protocols on configured resources. +type ActionProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.port - Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3,oneof" json:"flow,omitempty"` - // Description missing in models - Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3,oneof" json:"bgpv4,omitempty"` - // Description missing in models - Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3,oneof" json:"bgpv6,omitempty"` - // Description missing in models - Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3,oneof" json:"isis,omitempty"` - // Description missing in models - Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3,oneof" json:"lag,omitempty"` + // required = true + Choice ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum" json:"choice,omitempty"` // Description missing in models - Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` // Description missing in models - Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3,oneof" json:"lldp,omitempty"` + Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` // Description missing in models - Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` + Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` } -func (x *MetricsRequest) Reset() { - *x = MetricsRequest{} +func (x *ActionProtocol) Reset() { + *x = ActionProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[237] + mi := &file_otg_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest) String() string { +func (x *ActionProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest) ProtoMessage() {} +func (*ActionProtocol) ProtoMessage() {} -func (x *MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[237] +func (x *ActionProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37839,127 +38290,137 @@ func (x *MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. -func (*MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237} +// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. +func (*ActionProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{238} } -func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { + if x != nil { + return x.Choice } - return MetricsRequest_Choice_unspecified + return ActionProtocol_Choice_unspecified } -func (x *MetricsRequest) GetPort() *PortMetricsRequest { +func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { if x != nil { - return x.Port + return x.Ipv4 } return nil } -func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { +func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { if x != nil { - return x.Flow + return x.Ipv6 } return nil } -func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { +func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { if x != nil { - return x.Bgpv4 + return x.Bgp } return nil } -func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { - if x != nil { - return x.Bgpv6 - } - return nil +// Response for actions associated with protocols on configured resources. +type ActionResponseProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + // Description missing in models + Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` } -func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { - if x != nil { - return x.Isis +func (x *ActionResponseProtocol) Reset() { + *x = ActionResponseProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[239] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsRequest) GetLag() *LagMetricsRequest { - if x != nil { - return x.Lag +func (x *ActionResponseProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionResponseProtocol) ProtoMessage() {} + +func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[239] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { +// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{239} +} + +func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { if x != nil { - return x.Lacp + return x.Choice } - return nil + return ActionResponseProtocol_Choice_unspecified } -func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { +func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { if x != nil { - return x.Lldp + return x.Ipv4 } return nil } -func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { +func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { if x != nil { - return x.Rsvp + return x.Ipv6 } return nil } -// Response containing chosen traffic generator metrics. -type MetricsResponse struct { +// Actions associated with IPv4 on configured resources. +type ActionProtocolIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.port_metrics - Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` - // Description missing in models - FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` - // Description missing in models - Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` - // Description missing in models - Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` - // Description missing in models - IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` - // Description missing in models - LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` - // Description missing in models - LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` - // Description missing in models - LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` + // required = true + Choice ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum" json:"choice,omitempty"` // Description missing in models - RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` + Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *MetricsResponse) Reset() { - *x = MetricsResponse{} +func (x *ActionProtocolIpv4) Reset() { + *x = ActionProtocolIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[238] + mi := &file_otg_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse) String() string { +func (x *ActionProtocolIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse) ProtoMessage() {} +func (*ActionProtocolIpv4) ProtoMessage() {} -func (x *MetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[238] +func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37970,118 +38431,111 @@ func (x *MetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. -func (*MetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238} -} - -func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return MetricsResponse_Choice_unspecified +// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240} } -func (x *MetricsResponse) GetPortMetrics() []*PortMetric { +func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { if x != nil { - return x.PortMetrics + return x.Choice } - return nil + return ActionProtocolIpv4_Choice_unspecified } -func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { +func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { if x != nil { - return x.FlowMetrics + return x.Ping } return nil } -func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { - if x != nil { - return x.Bgpv4Metrics - } - return nil +// Response for actions associated with IPv4 on configured resources. +type ActionResponseProtocolIpv4 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { - if x != nil { - return x.Bgpv6Metrics +func (x *ActionResponseProtocolIpv4) Reset() { + *x = ActionResponseProtocolIpv4{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[241] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { - if x != nil { - return x.IsisMetrics - } - return nil +func (x *ActionResponseProtocolIpv4) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *MetricsResponse) GetLagMetrics() []*LagMetric { - if x != nil { - return x.LagMetrics +func (*ActionResponseProtocolIpv4) ProtoMessage() {} + +func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[241] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { - if x != nil { - return x.LacpMetrics - } - return nil +// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241} } -func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { +func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { if x != nil { - return x.LldpMetrics + return x.Choice } - return nil + return ActionResponseProtocolIpv4_Choice_unspecified } -func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { +func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { if x != nil { - return x.RsvpMetrics + return x.Ping } return nil } -// The port result request to the traffic generator -type PortMetricsRequest struct { +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv4Ping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of objects to return results for. An empty list will return all port row - // results. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the port cannot be excluded. - ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // List of IPv4 ping requests. + Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *PortMetricsRequest) Reset() { - *x = PortMetricsRequest{} +func (x *ActionProtocolIpv4Ping) Reset() { + *x = ActionProtocolIpv4Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[239] + mi := &file_otg_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest) String() string { +func (x *ActionProtocolIpv4Ping) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest) ProtoMessage() {} +func (*ActionProtocolIpv4Ping) ProtoMessage() {} -func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[239] +func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38092,84 +38546,59 @@ func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239} -} - -func (x *PortMetricsRequest) GetPortNames() []string { - if x != nil { - return x.PortNames - } - return nil +// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{242} } -func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { +func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { if x != nil { - return x.ColumnNames + return x.Requests } return nil } -// Description missing in models -type PortMetric struct { +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv4PingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured port + // Name of source IPv4 interface to be used. // // x-constraint: - // - /components/schemas/Port/properties/name + // - /components/schemas/Device.Ipv4/properties/name // // x-constraint: - // - /components/schemas/Port/properties/name - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The state of the connection to the test port location. The format should be the configured - // port location along with any custom connection state message. - Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` - // The state of the test port link The string can be up, down or a custom error message. - Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` - // The state of the test port capture infrastructure. The string can be started, stopped - // or a custom error message. - Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received - BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted - BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received - BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` - // The transmit state of the flow. - Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // - /components/schemas/Device.Ipv4/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv4 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *PortMetric) Reset() { - *x = PortMetric{} +func (x *ActionProtocolIpv4PingRequest) Reset() { + *x = ActionProtocolIpv4PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[240] + mi := &file_otg_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric) String() string { +func (x *ActionProtocolIpv4PingRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric) ProtoMessage() {} +func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} -func (x *PortMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[240] +func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38180,141 +38609,115 @@ func (x *PortMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. -func (*PortMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240} +// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{243} } -func (x *PortMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } return "" } -func (x *PortMetric) GetLocation() string { - if x != nil && x.Location != nil { - return *x.Location +func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } return "" } -func (x *PortMetric) GetLink() PortMetric_Link_Enum { - if x != nil && x.Link != nil { - return *x.Link - } - return PortMetric_Link_unspecified -} +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv4Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { - if x != nil && x.Capture != nil { - return *x.Capture - } - return PortMetric_Capture_unspecified + // List of responses for IPv4 ping responses. + Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *PortMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionResponseProtocolIpv4Ping) Reset() { + *x = ActionResponseProtocolIpv4Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[244] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *PortMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +func (x *ActionResponseProtocolIpv4Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *PortMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 -} - -func (x *PortMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 -} - -func (x *PortMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 -} - -func (x *PortMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate - } - return 0 -} +func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} -func (x *PortMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[244] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *PortMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate - } - return 0 +// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{244} } -func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit +func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { + if x != nil { + return x.Responses } - return PortMetric_Transmit_unspecified + return nil } -// The container for a flow metric request. -type FlowMetricsRequest struct { +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv4PingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow metrics will be retrieved for these flow names. - // If no flow names are specified then all flows will be returned. + // Name of source IPv4 interface used for ping. // // x-constraint: - // - /components/schemas/Flow/properties/name + // - /components/schemas/Device.Ipv4/properties/name // // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` - // Description missing in models - TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3,oneof" json:"tagged_metrics,omitempty"` + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + // Destination IPv4 address used for ping. + // required = true + DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum" json:"result,omitempty"` } -func (x *FlowMetricsRequest) Reset() { - *x = FlowMetricsRequest{} +func (x *ActionResponseProtocolIpv4PingResponse) Reset() { + *x = ActionResponseProtocolIpv4PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[241] + mi := &file_otg_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest) String() string { +func (x *ActionResponseProtocolIpv4PingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} -func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[241] +func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38325,70 +38728,62 @@ func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245} } -func (x *FlowMetricsRequest) GetFlowNames() []string { +func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { if x != nil { - return x.FlowNames + return x.SrcName } - return nil + return "" } -func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { +func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { if x != nil { - return x.MetricNames + return x.DstIp } - return nil + return "" } -func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { +func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { if x != nil { - return x.TaggedMetrics + return x.Result } - return nil + return ActionResponseProtocolIpv4PingResponse_Result_unspecified } -// Filter for tagged metrics -type FlowTaggedMetricsFilter struct { +// Actions associated with IPv6 on configured resources. +type ActionProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. - // default = True - Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` - // Controls inclusion/exclusion of tagged metrics where each underlying attributes has - // zero value or absent value. - // default = False - IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` - // List of filters to selectively fetch tagged metrics with certain tag and corresponding - // value. - Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` + // Description missing in models + // required = true + Choice ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *FlowTaggedMetricsFilter) Reset() { - *x = FlowTaggedMetricsFilter{} +func (x *ActionProtocolIpv6) Reset() { + *x = ActionProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[242] + mi := &file_otg_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter) String() string { +func (x *ActionProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter) ProtoMessage() {} +func (*ActionProtocolIpv6) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[242] +func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38399,71 +38794,55 @@ func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242} -} - -func (x *FlowTaggedMetricsFilter) GetInclude() bool { - if x != nil && x.Include != nil { - return *x.Include - } - return false -} - -func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { - if x != nil && x.IncludeEmptyMetrics != nil { - return *x.IncludeEmptyMetrics - } - return false +// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246} } -func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { +func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { if x != nil { - return x.MetricNames + return x.Choice } - return nil + return ActionProtocolIpv6_Choice_unspecified } -func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { +func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { if x != nil { - return x.Filters + return x.Ping } return nil } -// A container for filtering ingress and/or egress metric tags. -// The Tx stats may not be applicable in both the request and response filter. -type FlowMetricTagFilter struct { +// Response for actions associated with IPv6 on configured resources. +type ActionResponseProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A metric tag name that MUST exist in a flow packet or - // flow egress_packet configuration - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // A list of filters that can be applied to the metric tag name. - // By default all values will be included in the flow metric results. - Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` + // Description missing in models + // required = true + Choice ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *FlowMetricTagFilter) Reset() { - *x = FlowMetricTagFilter{} +func (x *ActionResponseProtocolIpv6) Reset() { + *x = ActionResponseProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[243] + mi := &file_otg_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagFilter) String() string { +func (x *ActionResponseProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagFilter) ProtoMessage() {} +func (*ActionResponseProtocolIpv6) ProtoMessage() {} -func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[243] +func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38474,82 +38853,52 @@ func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. -func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243} +// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247} } -func (x *FlowMetricTagFilter) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { + if x != nil { + return x.Choice } - return "" + return ActionResponseProtocolIpv6_Choice_unspecified } -func (x *FlowMetricTagFilter) GetValues() []string { +func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { if x != nil { - return x.Values + return x.Ping } return nil } -// A container for flow metrics. -// The container is keyed by the name, port_tx and port_rx. -type FlowMetric struct { +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv6Ping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the flow - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The name of the transmit port - PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` - // The name of the receive port - PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` - // The transmit state of the flow. - Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` - // List of metrics corresponding to a set of values applicable - // for configured metric tags in ingress or egress packet header fields of corresponding - // flow. - // The container is keyed by list of tag-value pairs. - TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` + // List of IPv6 ping requests. + Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *FlowMetric) Reset() { - *x = FlowMetric{} +func (x *ActionProtocolIpv6Ping) Reset() { + *x = ActionProtocolIpv6Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[244] + mi := &file_otg_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric) String() string { +func (x *ActionProtocolIpv6Ping) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric) ProtoMessage() {} +func (*ActionProtocolIpv6Ping) ProtoMessage() {} -func (x *FlowMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[244] +func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38560,156 +38909,178 @@ func (x *FlowMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. -func (*FlowMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244} +// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{248} } -func (x *FlowMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { + if x != nil { + return x.Requests } - return "" + return nil } -func (x *FlowMetric) GetPortTx() string { - if x != nil && x.PortTx != nil { - return *x.PortTx - } - return "" +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv6PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of source IPv6 interface to be used. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv6 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *FlowMetric) GetPortRx() string { - if x != nil && x.PortRx != nil { - return *x.PortRx +func (x *ActionProtocolIpv6PingRequest) Reset() { + *x = ActionProtocolIpv6PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[249] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit - } - return FlowMetric_Transmit_unspecified +func (x *ActionProtocolIpv6PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} + +func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[249] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249} } -func (x *FlowMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx +func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return 0 + return "" } -func (x *FlowMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx +func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return 0 + return "" } -func (x *FlowMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv6Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of responses for IPv6 ping responses. + Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *FlowMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (x *ActionResponseProtocolIpv6Ping) Reset() { + *x = ActionResponseProtocolIpv6Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[250] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss - } - return 0 +func (x *ActionResponseProtocolIpv6Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowMetric) GetTimestamps() *MetricTimestamp { - if x != nil { - return x.Timestamps +func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} + +func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[250] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowMetric) GetLatency() *MetricLatency { - if x != nil { - return x.Latency - } - return nil +// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{250} } -func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { +func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { if x != nil { - return x.TaggedMetrics + return x.Responses } return nil } -// Metrics for each set of values applicable for configured -// metric tags in ingress or egress packet header fields of corresponding flow. -// The container is keyed by list of tag-value pairs. -type FlowTaggedMetric struct { +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv6PingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of tag and value pairs - Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // Name of source IPv6 interface used for ping. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // required = true + SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + // Destination IPv6 address used for ping. + // required = true + DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum" json:"result,omitempty"` } -func (x *FlowTaggedMetric) Reset() { - *x = FlowTaggedMetric{} +func (x *ActionResponseProtocolIpv6PingResponse) Reset() { + *x = ActionResponseProtocolIpv6PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[245] + mi := &file_otg_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetric) String() string { +func (x *ActionResponseProtocolIpv6PingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetric) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} -func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[245] +func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38720,110 +39091,162 @@ func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{245} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{251} } -func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { +func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { if x != nil { - return x.Tags + return x.SrcName } - return nil + return "" } -func (x *FlowTaggedMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { + if x != nil { + return x.DstIp } - return 0 + return "" } -func (x *FlowTaggedMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx +func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { + if x != nil { + return x.Result } - return 0 + return ActionResponseProtocolIpv6PingResponse_Result_unspecified } -func (x *FlowTaggedMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 +// Actions associated with BGP on configured resources. +type ActionProtocolBgp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3,oneof" json:"notification,omitempty"` + // Description missing in models + InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3,oneof" json:"initiate_graceful_restart,omitempty"` } -func (x *FlowTaggedMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx +func (x *ActionProtocolBgp) Reset() { + *x = ActionProtocolBgp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[252] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowTaggedMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 +func (x *ActionProtocolBgp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowTaggedMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (*ActionProtocolBgp) ProtoMessage() {} + +func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[252] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowTaggedMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss +// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{252} +} + +func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { + if x != nil { + return x.Choice } - return 0 + return ActionProtocolBgp_Choice_unspecified } -func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { +func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { if x != nil { - return x.Timestamps + return x.Notification } return nil } -func (x *FlowTaggedMetric) GetLatency() *MetricLatency { +func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { if x != nil { - return x.Latency + return x.InitiateGracefulRestart } return nil } -// Description missing in models -type FlowMetricTag struct { +// A NOTIFICATION message is sent when an error is detected with the BGP session, such +// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. +// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of +// specified BGP peers. If a user wants to send custom Error Code and Error Subcode +// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs +// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. +type ActionProtocolBgpNotification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of packet field metric tag - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION + // will be sent to all configured BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Each BGP NOTIFICATION message includes an Error Code field indicating what type of + // problem occurred. For certain Error Codes, an Error Subcode field provides additional + // details about the specific nature of the problem. The choice value will provide + // the Error Code used in NOTIFICATION message. The Subcode can be set for each of + // the corresponding errors except for Hold Timer Expired error and BGP Finite State + // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to + // use non zero Sub Code then custom choice can be used. + // default = Choice.Enum.cease + Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3,oneof" json:"cease,omitempty"` + // Description missing in models + MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3,oneof" json:"message_header_error,omitempty"` + // Description missing in models + OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3,oneof" json:"open_message_error,omitempty"` + // Description missing in models + UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3,oneof" json:"update_message_error,omitempty"` + // Description missing in models + HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3,oneof" json:"hold_timer_expired,omitempty"` + // Description missing in models + FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3,oneof" json:"finite_state_machine_error,omitempty"` + // Description missing in models + Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *FlowMetricTag) Reset() { - *x = FlowMetricTag{} +func (x *ActionProtocolBgpNotification) Reset() { + *x = ActionProtocolBgpNotification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[246] + mi := &file_otg_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTag) String() string { +func (x *ActionProtocolBgpNotification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTag) ProtoMessage() {} +func (*ActionProtocolBgpNotification) ProtoMessage() {} -func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[246] +func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38834,124 +39257,113 @@ func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. -func (*FlowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246} -} - -func (x *FlowMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{253} } -func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { +func (x *ActionProtocolBgpNotification) GetNames() []string { if x != nil { - return x.Value + return x.Names } return nil } -// A container for metric tag value -type FlowMetricTagValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Available formats for metric tag value - // default = Choice.Enum.hex - Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` - // Value represented in hexadecimal format - Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` - // Value represented in string format - Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` +func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return ActionProtocolBgpNotification_Choice_unspecified } -func (x *FlowMetricTagValue) Reset() { - *x = FlowMetricTagValue{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[247] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { + if x != nil { + return x.Cease } + return nil } -func (x *FlowMetricTagValue) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { + if x != nil { + return x.MessageHeaderError + } + return nil } -func (*FlowMetricTagValue) ProtoMessage() {} - -func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[247] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { + if x != nil { + return x.OpenMessageError } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247} +func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { + if x != nil { + return x.UpdateMessageError + } + return nil } -func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { + if x != nil { + return x.HoldTimerExpired } - return FlowMetricTagValue_Choice_unspecified + return nil } -func (x *FlowMetricTagValue) GetHex() string { - if x != nil && x.Hex != nil { - return *x.Hex +func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { + if x != nil { + return x.FiniteStateMachineError } - return "" + return nil } -func (x *FlowMetricTagValue) GetStr() string { - if x != nil && x.Str != nil { - return *x.Str +func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { + if x != nil { + return x.Custom } - return "" + return nil } -// The container for timestamp metrics. -// The container will be empty if the timestamp has not been configured for -// the flow. -type MetricTimestamp struct { +// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is +// specified then Graceful Restart will be sent to all configured BGP peers. +type ActionProtocolBgpInitiateGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // First timestamp in nanoseconds - FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` - // Last timestamp in nanoseconds - LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` + // The names of device BGP peers objects to control. + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // Duration (in seconds) after which selected BGP peers will initiate + // Graceful restart by sending the Open Message with Restart State bit set in the Graceful + // Restart capability. + // default = 30 + RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` } -func (x *MetricTimestamp) Reset() { - *x = MetricTimestamp{} +func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { + *x = ActionProtocolBgpInitiateGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[248] + mi := &file_otg_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricTimestamp) String() string { +func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricTimestamp) ProtoMessage() {} +func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} -func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[248] +func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38962,60 +39374,71 @@ func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. -func (*MetricTimestamp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248} +// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{254} } -func (x *MetricTimestamp) GetFirstTimestampNs() float64 { - if x != nil && x.FirstTimestampNs != nil { - return *x.FirstTimestampNs +func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { + if x != nil { + return x.PeerNames } - return 0 + return nil } -func (x *MetricTimestamp) GetLastTimestampNs() float64 { - if x != nil && x.LastTimestampNs != nil { - return *x.LastTimestampNs +func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { + if x != nil && x.RestartDelay != nil { + return *x.RestartDelay } return 0 } -// The container for latency metrics. -// The min/max/avg values are dependent on the type of latency measurement -// mode that is configured. -// The container will be empty if the latency has not been configured for -// the flow. -type MetricLatency struct { +// Request to traffic generator for metrics of choice. +type MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Minimum latency in nanoseconds - MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` - // Maximum latency in nanoseconds - MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` - // Average latency in nanoseconds - AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` + // Description missing in models + // default = Choice.Enum.port + Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + // Description missing in models + Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3,oneof" json:"flow,omitempty"` + // Description missing in models + Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3,oneof" json:"bgpv4,omitempty"` + // Description missing in models + Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3,oneof" json:"bgpv6,omitempty"` + // Description missing in models + Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3,oneof" json:"isis,omitempty"` + // Description missing in models + Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3,oneof" json:"lag,omitempty"` + // Description missing in models + Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + // Description missing in models + Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3,oneof" json:"lldp,omitempty"` + // Description missing in models + Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` } -func (x *MetricLatency) Reset() { - *x = MetricLatency{} +func (x *MetricsRequest) Reset() { + *x = MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[249] + mi := &file_otg_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricLatency) String() string { +func (x *MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricLatency) ProtoMessage() {} +func (*MetricsRequest) ProtoMessage() {} -func (x *MetricLatency) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[249] +func (x *MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39026,70 +39449,127 @@ func (x *MetricLatency) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. -func (*MetricLatency) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249} +// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. +func (*MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{255} } -func (x *MetricLatency) GetMinimumNs() float64 { - if x != nil && x.MinimumNs != nil { - return *x.MinimumNs +func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return MetricsRequest_Choice_unspecified } -func (x *MetricLatency) GetMaximumNs() float64 { - if x != nil && x.MaximumNs != nil { - return *x.MaximumNs +func (x *MetricsRequest) GetPort() *PortMetricsRequest { + if x != nil { + return x.Port } - return 0 + return nil } -func (x *MetricLatency) GetAverageNs() float64 { - if x != nil && x.AverageNs != nil { - return *x.AverageNs +func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { + if x != nil { + return x.Flow } - return 0 + return nil } -// The request to retrieve BGPv4 per peer metrics/statistics. -type Bgpv4MetricsRequest struct { +func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { + if x != nil { + return x.Bgpv4 + } + return nil +} + +func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { + if x != nil { + return x.Bgpv6 + } + return nil +} + +func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { + if x != nil { + return x.Isis + } + return nil +} + +func (x *MetricsRequest) GetLag() *LagMetricsRequest { + if x != nil { + return x.Lag + } + return nil +} + +func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { + if x != nil { + return x.Lacp + } + return nil +} + +func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { + if x != nil { + return x.Lldp + } + return nil +} + +func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { + if x != nil { + return x.Rsvp + } + return nil +} + +// Response containing chosen traffic generator metrics. +type MetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv4 peers to return results for. An empty list will return results - // for all BGPv4 peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv4 peer cannot be excluded. - ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // Description missing in models + // default = Choice.Enum.port_metrics + Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` + // Description missing in models + FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` + // Description missing in models + Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` + // Description missing in models + Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` + // Description missing in models + IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` + // Description missing in models + LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` + // Description missing in models + LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` + // Description missing in models + LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` + // Description missing in models + RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` } -func (x *Bgpv4MetricsRequest) Reset() { - *x = Bgpv4MetricsRequest{} +func (x *MetricsResponse) Reset() { + *x = MetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[250] + mi := &file_otg_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest) String() string { +func (x *MetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest) ProtoMessage() {} +func (*MetricsResponse) ProtoMessage() {} -func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[250] +func (x *MetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39100,271 +39580,118 @@ func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250} +// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. +func (*MetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{256} } -func (x *Bgpv4MetricsRequest) GetPeerNames() []string { +func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return MetricsResponse_Choice_unspecified +} + +func (x *MetricsResponse) GetPortMetrics() []*PortMetric { if x != nil { - return x.PeerNames + return x.PortMetrics } return nil } -func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { +func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { if x != nil { - return x.ColumnNames + return x.FlowMetrics } return nil } -// BGPv4 per peer statistics information. -type Bgpv4Metric struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { + if x != nil { + return x.Bgpv4Metrics + } + return nil +} - // The name of a configured BGPv4 peer. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` -} - -func (x *Bgpv4Metric) Reset() { - *x = Bgpv4Metric{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[251] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Bgpv4Metric) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Bgpv4Metric) ProtoMessage() {} - -func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[251] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251} -} - -func (x *Bgpv4Metric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState - } - return Bgpv4Metric_SessionState_unspecified -} - -func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount - } - return 0 -} - -func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised - } - return 0 -} - -func (x *Bgpv4Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent - } - return 0 -} - -func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent - } - return 0 -} - -func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent - } - return 0 -} - -func (x *Bgpv4Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { + if x != nil { + return x.Bgpv6Metrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { + if x != nil { + return x.IsisMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +func (x *MetricsResponse) GetLagMetrics() []*LagMetric { + if x != nil { + return x.LagMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { + if x != nil { + return x.LacpMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState +func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { + if x != nil { + return x.LldpMetrics } - return Bgpv4Metric_FsmState_unspecified + return nil } -func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { + if x != nil { + return x.RsvpMetrics } - return 0 + return nil } -// The request to retrieve BGPv6 per peer metrics/statistics. -type Bgpv6MetricsRequest struct { +// The port result request to the traffic generator +type PortMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv6 peers to return results for. An empty list will return results - // for all BGPv6 peers. + // The names of objects to return results for. An empty list will return all port row + // results. // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name + // - /components/schemas/Port/properties/name // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv6 peer cannot be excluded. - ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // empty then all columns will be returned. The name of the port cannot be excluded. + ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *Bgpv6MetricsRequest) Reset() { - *x = Bgpv6MetricsRequest{} +func (x *PortMetricsRequest) Reset() { + *x = PortMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[252] + mi := &file_otg_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest) String() string { +func (x *PortMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest) ProtoMessage() {} +func (*PortMetricsRequest) ProtoMessage() {} -func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[252] +func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39375,99 +39702,84 @@ func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252} +// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257} } -func (x *Bgpv6MetricsRequest) GetPeerNames() []string { +func (x *PortMetricsRequest) GetPortNames() []string { if x != nil { - return x.PeerNames + return x.PortNames } return nil } -func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { +func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { if x != nil { return x.ColumnNames } return nil } -// BGPv6 per peer statistics information. -type Bgpv6Metric struct { +// Description missing in models +type PortMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured BGPv6 peer. + // The name of a configured port + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` + // The state of the connection to the test port location. The format should be the configured + // port location along with any custom connection state message. + Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` + // The state of the test port link The string can be up, down or a custom error message. + Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` + // The state of the test port capture infrastructure. The string can be started, stopped + // or a custom error message. + Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received + BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted + BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received + BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // The transmit state of the flow. + Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` } -func (x *Bgpv6Metric) Reset() { - *x = Bgpv6Metric{} +func (x *PortMetric) Reset() { + *x = PortMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[253] + mi := &file_otg_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric) String() string { +func (x *PortMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric) ProtoMessage() {} +func (*PortMetric) ProtoMessage() {} -func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[253] +func (x *PortMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39478,168 +39790,141 @@ func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253} +// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. +func (*PortMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258} } -func (x *Bgpv6Metric) GetName() string { +func (x *PortMetric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState - } - return Bgpv6Metric_SessionState_unspecified -} - -func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount - } - return 0 -} - -func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised - } - return 0 -} - -func (x *Bgpv6Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived +func (x *PortMetric) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location } - return 0 + return "" } -func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent +func (x *PortMetric) GetLink() PortMetric_Link_Enum { + if x != nil && x.Link != nil { + return *x.Link } - return 0 + return PortMetric_Link_unspecified } -func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived +func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { + if x != nil && x.Capture != nil { + return *x.Capture } - return 0 + return PortMetric_Capture_unspecified } -func (x *Bgpv6Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent +func (x *PortMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } return 0 } -func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived +func (x *PortMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -func (x *Bgpv6Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent +func (x *PortMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx } return 0 } -func (x *Bgpv6Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived +func (x *PortMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx } return 0 } -func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +func (x *PortMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate } return 0 } -func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +func (x *PortMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate } return 0 } -func (x *Bgpv6Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +func (x *PortMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate } return 0 } -func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +func (x *PortMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate } return 0 } -func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState - } - return Bgpv6Metric_FsmState_unspecified -} - -func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit } - return 0 + return PortMetric_Transmit_unspecified } -// The request to retrieve ISIS per Router metrics/statistics. -type IsisMetricsRequest struct { +// The container for a flow metric request. +type FlowMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS Routers to return results for. An empty list will return results - // for all ISIS router. + // Flow metrics will be retrieved for these flow names. + // If no flow names are specified then all flows will be returned. // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name + // - /components/schemas/Flow/properties/name // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the ISIS Router cannot be excluded. - ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` + // Description missing in models + TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3,oneof" json:"tagged_metrics,omitempty"` } -func (x *IsisMetricsRequest) Reset() { - *x = IsisMetricsRequest{} +func (x *FlowMetricsRequest) Reset() { + *x = FlowMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[254] + mi := &file_otg_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetricsRequest) String() string { +func (x *FlowMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest) ProtoMessage() {} +func (*FlowMetricsRequest) ProtoMessage() {} -func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[254] +func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39650,104 +39935,70 @@ func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254} +// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{259} } -func (x *IsisMetricsRequest) GetRouterNames() []string { +func (x *FlowMetricsRequest) GetFlowNames() []string { if x != nil { - return x.RouterNames + return x.FlowNames } return nil } -func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { +func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { if x != nil { - return x.ColumnNames + return x.MetricNames } return nil } -// ISIS per router statistics information. -type IsisMetric struct { +func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { + if x != nil { + return x.TaggedMetrics + } + return nil +} + +// Filter for tagged metrics +type FlowTaggedMetricsFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured ISIS router. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of Level 1 (L1) sessions that are fully up. - L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` - // The number of Level 1 Sessions Flap. - L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` - // Number of Level 1 Hello messages sent. - L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` - // Number of Level 1 Hello messages received. - L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages sent. - L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages received. - L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. - L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` - // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. - L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. - L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. - L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. - L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. - L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. - L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` - // The number of Level 2 (L2) sessions that are fully up. - L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` - // The number of Level 2 Sessions Flap. - L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` - // Number of Level 2 Hello messages sent. - L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` - // Number of Level 2 Hello messages received. - L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages sent. - L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages received. - L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. - L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` - // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. - L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. - L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. - L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. - L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. - L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. - L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` + // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. + // default = True + Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` + // Controls inclusion/exclusion of tagged metrics where each underlying attributes has + // zero value or absent value. + // default = False + IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` + // List of filters to selectively fetch tagged metrics with certain tag and corresponding + // value. + Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` } -func (x *IsisMetric) Reset() { - *x = IsisMetric{} +func (x *FlowTaggedMetricsFilter) Reset() { + *x = FlowTaggedMetricsFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[255] + mi := &file_otg_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetric) String() string { +func (x *FlowTaggedMetricsFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetric) ProtoMessage() {} +func (*FlowTaggedMetricsFilter) ProtoMessage() {} -func (x *IsisMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[255] +func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39758,237 +40009,71 @@ func (x *IsisMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. -func (*IsisMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255} -} - -func (x *IsisMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *IsisMetric) GetL1SessionsUp() uint32 { - if x != nil && x.L1SessionsUp != nil { - return *x.L1SessionsUp - } - return 0 -} - -func (x *IsisMetric) GetL1SessionFlap() uint64 { - if x != nil && x.L1SessionFlap != nil { - return *x.L1SessionFlap - } - return 0 -} - -func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { - if x != nil && x.L1BroadcastHellosSent != nil { - return *x.L1BroadcastHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { - if x != nil && x.L1BroadcastHellosReceived != nil { - return *x.L1BroadcastHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { - if x != nil && x.L1PointToPointHellosSent != nil { - return *x.L1PointToPointHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { - if x != nil && x.L1PointToPointHellosReceived != nil { - return *x.L1PointToPointHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL1DatabaseSize() uint64 { - if x != nil && x.L1DatabaseSize != nil { - return *x.L1DatabaseSize - } - return 0 -} - -func (x *IsisMetric) GetL1PsnpSent() uint64 { - if x != nil && x.L1PsnpSent != nil { - return *x.L1PsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL1PsnpReceived() uint64 { - if x != nil && x.L1PsnpReceived != nil { - return *x.L1PsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpSent() uint64 { - if x != nil && x.L1CsnpSent != nil { - return *x.L1CsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpReceived() uint64 { - if x != nil && x.L1CsnpReceived != nil { - return *x.L1CsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1LspSent() uint64 { - if x != nil && x.L1LspSent != nil { - return *x.L1LspSent - } - return 0 -} - -func (x *IsisMetric) GetL1LspReceived() uint64 { - if x != nil && x.L1LspReceived != nil { - return *x.L1LspReceived - } - return 0 -} - -func (x *IsisMetric) GetL2SessionsUp() uint32 { - if x != nil && x.L2SessionsUp != nil { - return *x.L2SessionsUp - } - return 0 -} - -func (x *IsisMetric) GetL2SessionFlap() uint64 { - if x != nil && x.L2SessionFlap != nil { - return *x.L2SessionFlap - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { - if x != nil && x.L2BroadcastHellosSent != nil { - return *x.L2BroadcastHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { - if x != nil && x.L2BroadcastHellosReceived != nil { - return *x.L2BroadcastHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { - if x != nil && x.L2PointToPointHellosSent != nil { - return *x.L2PointToPointHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { - if x != nil && x.L2PointToPointHellosReceived != nil { - return *x.L2PointToPointHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL2DatabaseSize() uint64 { - if x != nil && x.L2DatabaseSize != nil { - return *x.L2DatabaseSize - } - return 0 -} - -func (x *IsisMetric) GetL2PsnpSent() uint64 { - if x != nil && x.L2PsnpSent != nil { - return *x.L2PsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL2PsnpReceived() uint64 { - if x != nil && x.L2PsnpReceived != nil { - return *x.L2PsnpReceived - } - return 0 +// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{260} } -func (x *IsisMetric) GetL2CsnpSent() uint64 { - if x != nil && x.L2CsnpSent != nil { - return *x.L2CsnpSent +func (x *FlowTaggedMetricsFilter) GetInclude() bool { + if x != nil && x.Include != nil { + return *x.Include } - return 0 + return false } -func (x *IsisMetric) GetL2CsnpReceived() uint64 { - if x != nil && x.L2CsnpReceived != nil { - return *x.L2CsnpReceived +func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { + if x != nil && x.IncludeEmptyMetrics != nil { + return *x.IncludeEmptyMetrics } - return 0 + return false } -func (x *IsisMetric) GetL2LspSent() uint64 { - if x != nil && x.L2LspSent != nil { - return *x.L2LspSent +func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { + if x != nil { + return x.MetricNames } - return 0 + return nil } -func (x *IsisMetric) GetL2LspReceived() uint64 { - if x != nil && x.L2LspReceived != nil { - return *x.L2LspReceived +func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { + if x != nil { + return x.Filters } - return 0 + return nil } -// The request to retrieve per LAG metrics/statistics. -type LagMetricsRequest struct { +// A container for filtering ingress and/or egress metric tags. +// The Tx stats may not be applicable in both the request and response filter. +type FlowMetricTagFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAGs to return results for. An empty list will return results for all - // LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the LAG cannot be excluded. - ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // A metric tag name that MUST exist in a flow packet or + // flow egress_packet configuration + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A list of filters that can be applied to the metric tag name. + // By default all values will be included in the flow metric results. + Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` } -func (x *LagMetricsRequest) Reset() { - *x = LagMetricsRequest{} +func (x *FlowMetricTagFilter) Reset() { + *x = FlowMetricTagFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[256] + mi := &file_otg_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest) String() string { +func (x *FlowMetricTagFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest) ProtoMessage() {} +func (*FlowMetricTagFilter) ProtoMessage() {} -func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[256] +func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39999,79 +40084,82 @@ func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256} +// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. +func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{261} } -func (x *LagMetricsRequest) GetLagNames() []string { - if x != nil { - return x.LagNames +func (x *FlowMetricTagFilter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { +func (x *FlowMetricTagFilter) GetValues() []string { if x != nil { - return x.ColumnNames + return x.Values } return nil } -// Description missing in models -type LagMetric struct { +// A container for flow metrics. +// The container is keyed by the name, port_tx and port_rx. +type FlowMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured LAG - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name + // The name of the flow Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The current operational state of the LAG. The state can be up or down. State 'up' - // indicates member_ports_up >= min_links. - OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` - // The number of LAG member ports up. - MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` - // The current total number of frames transmitted. - FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received. - FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted. - BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received. - BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted. - FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received. - FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted. - BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received. - BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // The name of the transmit port + PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` + // The name of the receive port + PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` + // The transmit state of the flow. + Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Description missing in models + Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Description missing in models + Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // List of metrics corresponding to a set of values applicable + // for configured metric tags in ingress or egress packet header fields of corresponding + // flow. + // The container is keyed by list of tag-value pairs. + TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } -func (x *LagMetric) Reset() { - *x = LagMetric{} +func (x *FlowMetric) Reset() { + *x = FlowMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[257] + mi := &file_otg_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric) String() string { +func (x *FlowMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric) ProtoMessage() {} +func (*FlowMetric) ProtoMessage() {} -func (x *LagMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[257] +func (x *FlowMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40082,135 +40170,156 @@ func (x *LagMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. -func (*LagMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257} +// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. +func (*FlowMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262} } -func (x *LagMetric) GetName() string { +func (x *FlowMetric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { - if x != nil && x.OperStatus != nil { - return *x.OperStatus +func (x *FlowMetric) GetPortTx() string { + if x != nil && x.PortTx != nil { + return *x.PortTx } - return LagMetric_OperStatus_unspecified + return "" } -func (x *LagMetric) GetMemberPortsUp() uint32 { - if x != nil && x.MemberPortsUp != nil { - return *x.MemberPortsUp +func (x *FlowMetric) GetPortRx() string { + if x != nil && x.PortRx != nil { + return *x.PortRx } - return 0 + return "" } -func (x *LagMetric) GetFramesTx() uint64 { +func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit + } + return FlowMetric_Transmit_unspecified +} + +func (x *FlowMetric) GetFramesTx() uint64 { if x != nil && x.FramesTx != nil { return *x.FramesTx } return 0 } -func (x *LagMetric) GetFramesRx() uint64 { +func (x *FlowMetric) GetFramesRx() uint64 { if x != nil && x.FramesRx != nil { return *x.FramesRx } return 0 } -func (x *LagMetric) GetBytesTx() uint64 { +func (x *FlowMetric) GetBytesTx() uint64 { if x != nil && x.BytesTx != nil { return *x.BytesTx } return 0 } -func (x *LagMetric) GetBytesRx() uint64 { +func (x *FlowMetric) GetBytesRx() uint64 { if x != nil && x.BytesRx != nil { return *x.BytesRx } return 0 } -func (x *LagMetric) GetFramesTxRate() float32 { +func (x *FlowMetric) GetFramesTxRate() float32 { if x != nil && x.FramesTxRate != nil { return *x.FramesTxRate } return 0 } -func (x *LagMetric) GetFramesRxRate() float32 { +func (x *FlowMetric) GetFramesRxRate() float32 { if x != nil && x.FramesRxRate != nil { return *x.FramesRxRate } return 0 } -func (x *LagMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *FlowMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss } return 0 } -func (x *LagMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate +func (x *FlowMetric) GetTimestamps() *MetricTimestamp { + if x != nil { + return x.Timestamps } - return 0 + return nil } -// The request to retrieve LACP per LAG member metrics/statistics. -type LacpMetricsRequest struct { +func (x *FlowMetric) GetLatency() *MetricLatency { + if x != nil { + return x.Latency + } + return nil +} + +func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { + if x != nil { + return x.TaggedMetrics + } + return nil +} + +// Metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. +type FlowTaggedMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG (ports group) for which LACP metrics to be returned. An empty list - // will return metrics for all LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The names of LAG members (ports) for which LACP metrics to be returned. An empty - // list will return metrics for all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of LAG and LAG member can not be - // excluded. - ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // List of tag and value pairs + Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Description missing in models + Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Description missing in models + Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3,oneof" json:"latency,omitempty"` } -func (x *LacpMetricsRequest) Reset() { - *x = LacpMetricsRequest{} +func (x *FlowTaggedMetric) Reset() { + *x = FlowTaggedMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[258] + mi := &file_otg_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest) String() string { +func (x *FlowTaggedMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest) ProtoMessage() {} +func (*FlowTaggedMetric) ProtoMessage() {} -func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[258] +func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40221,94 +40330,110 @@ func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258} +// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{263} } -func (x *LacpMetricsRequest) GetLagNames() []string { +func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { if x != nil { - return x.LagNames + return x.Tags } return nil } -func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { +func (x *FlowTaggedMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx + } + return 0 +} + +func (x *FlowTaggedMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx + } + return 0 +} + +func (x *FlowTaggedMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate + } + return 0 +} + +func (x *FlowTaggedMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss + } + return 0 +} + +func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { if x != nil { - return x.LagMemberPortNames + return x.Timestamps } return nil } -func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { +func (x *FlowTaggedMetric) GetLatency() *MetricLatency { if x != nil { - return x.ColumnNames + return x.Latency } return nil } -// LACP metrics (statistics) per LAG member. -type LacpMetric struct { +// Description missing in models +type FlowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a LAG (ports group) configured with LACP. - LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` - // The name of a LAG member (port) configured with LACP. - LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` - // Number of LACPDUs received. - LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` - // Number of LACPDUs transmitted. - LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` - // Number of LACPDUs receive packet errors. - LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` - // Indicates participant is active or passive. - Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` - // The timeout type (short or long) used by the participant. - Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` - // Indicates whether the participant is in-sync or out-of-sync. - Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` - // A true value indicates that the participant will allow the link to be used as part - // of the aggregate. A false value indicates the link should be used as an individual - // link. - Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` - // If true, the participant is collecting incoming frames on the link, otherwise false. - Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` - // When true, the participant is distributing outgoing frames; when false, distribution - // is disabled. - Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` - // MAC address that defines the local system ID for the aggregate interface. - SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` - // Current operational value of the key for the aggregate interface. - OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` - // MAC address representing the protocol partner's interface system ID. - PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` - // Operational value of the protocol partner's key. - PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` - // Port number of the local (actor) aggregation member. - PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` - // Port number of the partner (remote) port for this member port. - PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` + // Name of packet field metric tag + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *LacpMetric) Reset() { - *x = LacpMetric{} +func (x *FlowMetricTag) Reset() { + *x = FlowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[259] + mi := &file_otg_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric) String() string { +func (x *FlowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric) ProtoMessage() {} +func (*FlowMetricTag) ProtoMessage() {} -func (x *LacpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[259] +func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40319,167 +40444,124 @@ func (x *LacpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. -func (*LacpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259} -} - -func (x *LacpMetric) GetLagName() string { - if x != nil && x.LagName != nil { - return *x.LagName - } - return "" +// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. +func (*FlowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{264} } -func (x *LacpMetric) GetLagMemberPortName() string { - if x != nil && x.LagMemberPortName != nil { - return *x.LagMemberPortName +func (x *FlowMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *LacpMetric) GetLacpPacketsRx() uint64 { - if x != nil && x.LacpPacketsRx != nil { - return *x.LacpPacketsRx +func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { + if x != nil { + return x.Value } - return 0 + return nil } -func (x *LacpMetric) GetLacpPacketsTx() uint64 { - if x != nil && x.LacpPacketsTx != nil { - return *x.LacpPacketsTx - } - return 0 -} +// A container for metric tag value +type FlowMetricTagValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *LacpMetric) GetLacpRxErrors() uint64 { - if x != nil && x.LacpRxErrors != nil { - return *x.LacpRxErrors - } - return 0 + // Available formats for metric tag value + // default = Choice.Enum.hex + Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Value represented in hexadecimal format + Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + // Value represented in string format + Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` } -func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { - if x != nil && x.Activity != nil { - return *x.Activity +func (x *FlowMetricTagValue) Reset() { + *x = FlowMetricTagValue{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[265] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return LacpMetric_Activity_unspecified } -func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { - if x != nil && x.Timeout != nil { - return *x.Timeout - } - return LacpMetric_Timeout_unspecified +func (x *FlowMetricTagValue) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { - if x != nil && x.Synchronization != nil { - return *x.Synchronization - } - return LacpMetric_Synchronization_unspecified -} +func (*FlowMetricTagValue) ProtoMessage() {} -func (x *LacpMetric) GetAggregatable() bool { - if x != nil && x.Aggregatable != nil { - return *x.Aggregatable +func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[265] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *LacpMetric) GetCollecting() bool { - if x != nil && x.Collecting != nil { - return *x.Collecting - } - return false +// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{265} } -func (x *LacpMetric) GetDistributing() bool { - if x != nil && x.Distributing != nil { - return *x.Distributing +func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowMetricTagValue_Choice_unspecified } -func (x *LacpMetric) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId +func (x *FlowMetricTagValue) GetHex() string { + if x != nil && x.Hex != nil { + return *x.Hex } return "" } -func (x *LacpMetric) GetOperKey() uint32 { - if x != nil && x.OperKey != nil { - return *x.OperKey - } - return 0 -} - -func (x *LacpMetric) GetPartnerId() string { - if x != nil && x.PartnerId != nil { - return *x.PartnerId +func (x *FlowMetricTagValue) GetStr() string { + if x != nil && x.Str != nil { + return *x.Str } return "" } -func (x *LacpMetric) GetPartnerKey() uint32 { - if x != nil && x.PartnerKey != nil { - return *x.PartnerKey - } - return 0 -} - -func (x *LacpMetric) GetPortNum() uint32 { - if x != nil && x.PortNum != nil { - return *x.PortNum - } - return 0 -} - -func (x *LacpMetric) GetPartnerPortNum() uint32 { - if x != nil && x.PartnerPortNum != nil { - return *x.PartnerPortNum - } - return 0 -} - -// The request to retrieve LLDP per instance metrics/statistics. -type LldpMetricsRequest struct { +// The container for timestamp metrics. +// The container will be empty if the timestamp has not been configured for +// the flow. +type MetricTimestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances to return results for. An empty list will return results - // for all LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // The requested list of column names for the result set. If the list is empty then - // metrics for all columns will be returned. The name of LLDP instance can not be excluded. - ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // First timestamp in nanoseconds + FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` + // Last timestamp in nanoseconds + LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` } -func (x *LldpMetricsRequest) Reset() { - *x = LldpMetricsRequest{} +func (x *MetricTimestamp) Reset() { + *x = MetricTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[260] + mi := &file_otg_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest) String() string { +func (x *MetricTimestamp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest) ProtoMessage() {} +func (*MetricTimestamp) ProtoMessage() {} -func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[260] +func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40490,74 +40572,60 @@ func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260} +// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. +func (*MetricTimestamp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{266} } -func (x *LldpMetricsRequest) GetLldpNames() []string { - if x != nil { - return x.LldpNames +func (x *MetricTimestamp) GetFirstTimestampNs() float64 { + if x != nil && x.FirstTimestampNs != nil { + return *x.FirstTimestampNs } - return nil + return 0 } -func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *MetricTimestamp) GetLastTimestampNs() float64 { + if x != nil && x.LastTimestampNs != nil { + return *x.LastTimestampNs } - return nil + return 0 } -// LLDP per instance statistics information. -type LldpMetric struct { +// The container for latency metrics. +// The min/max/avg values are dependent on the type of latency measurement +// mode that is configured. +// The container will be empty if the latency has not been configured for +// the flow. +type MetricLatency struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the configured LLDP instance. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Number of LLDP frames received. - FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // Number of LLDP frames transmitted. - FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // Number of LLDP frames received with packet errors. This stat should be incremented - // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 - // AB-2005. - FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` - // Number of LLDP frames received that are discarded. This stat should be incremented - // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, - // out of order or contains an out of range information string length. This stat should - // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. - FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` - // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition - // specific for that particular TLV or if any TLV extends past the physical end of - // the frame then these TLVs will be discarded. - TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` - // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific - // TLV and/or organizationally defined subtype are not recognized,or if TLV type value - // is in the range of reserved TLV types then these TLVs will be considered as unknown - // TLVs. - TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` + // Minimum latency in nanoseconds + MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` + // Maximum latency in nanoseconds + MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` + // Average latency in nanoseconds + AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` } -func (x *LldpMetric) Reset() { - *x = LldpMetric{} +func (x *MetricLatency) Reset() { + *x = MetricLatency{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[261] + mi := &file_otg_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetric) String() string { +func (x *MetricLatency) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetric) ProtoMessage() {} +func (*MetricLatency) ProtoMessage() {} -func (x *LldpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[261] +func (x *MetricLatency) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40568,97 +40636,70 @@ func (x *LldpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. -func (*LldpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261} -} - -func (x *LldpMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *LldpMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 -} - -func (x *LldpMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx - } - return 0 -} - -func (x *LldpMetric) GetFramesErrorRx() uint64 { - if x != nil && x.FramesErrorRx != nil { - return *x.FramesErrorRx - } - return 0 +// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. +func (*MetricLatency) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{267} } -func (x *LldpMetric) GetFramesDiscard() uint64 { - if x != nil && x.FramesDiscard != nil { - return *x.FramesDiscard +func (x *MetricLatency) GetMinimumNs() float64 { + if x != nil && x.MinimumNs != nil { + return *x.MinimumNs } return 0 } -func (x *LldpMetric) GetTlvsDiscard() uint64 { - if x != nil && x.TlvsDiscard != nil { - return *x.TlvsDiscard +func (x *MetricLatency) GetMaximumNs() float64 { + if x != nil && x.MaximumNs != nil { + return *x.MaximumNs } return 0 } -func (x *LldpMetric) GetTlvsUnknown() uint64 { - if x != nil && x.TlvsUnknown != nil { - return *x.TlvsUnknown +func (x *MetricLatency) GetAverageNs() float64 { + if x != nil && x.AverageNs != nil { + return *x.AverageNs } return 0 } -// The request to retrieve RSVP-TE per Router metrics/statistics. -type RsvpMetricsRequest struct { +// The request to retrieve BGPv4 per peer metrics/statistics. +type Bgpv4MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of RSVP-TE Routers to return results for. An empty list as input will return - // results for all RSVP-TE routers. + // The names of BGPv4 peers to return results for. An empty list will return results + // for all BGPv4 peers. // // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name + // - /components/schemas/Bgp.V4peer/properties/name // // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the input - // list is empty then all columns will be returned except for any result_groups. - ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Bgp.V4peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv4 peer cannot be excluded. + ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *RsvpMetricsRequest) Reset() { - *x = RsvpMetricsRequest{} +func (x *Bgpv4MetricsRequest) Reset() { + *x = Bgpv4MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[262] + mi := &file_otg_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetricsRequest) String() string { +func (x *Bgpv4MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest) ProtoMessage() {} +func (*Bgpv4MetricsRequest) ProtoMessage() {} -func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[262] +func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40669,119 +40710,99 @@ func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262} +// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{268} } -func (x *RsvpMetricsRequest) GetRouterNames() []string { +func (x *Bgpv4MetricsRequest) GetPeerNames() []string { if x != nil { - return x.RouterNames + return x.PeerNames } return nil } -func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { +func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { if x != nil { return x.ColumnNames } return nil } -// RSVP-TE per router statistics information. -type RsvpMetric struct { +// BGPv4 per peer statistics information. +type Bgpv4Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured RSVP router. + // The name of a configured BGPv4 peer. Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of ingress point-to-point LSPs configured or transiting through the RSVP - // router which have been initated from the test port. - IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` - // The number of ingress point-to-point LSPs for which Resv has been received and is - // currently up. - IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` - // The number of egress point-to-point LSPs for which Path requests were successfully - // processed and is currently up. - EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` - // The number of times an LSP went from up to down state either because it timed out - // while waiting for Refreshes or a PathTear or ResvTear message was received which - // caused the LSP to flap. - LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` - // The number of Path messages sent by this RSVP router. - PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` - // The number of Path messages received by this RSVP router. - PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` - // The number of Resv messages sent by this RSVP router. - ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` - // The number of Resv messages received by this RSVP router. - ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` - // The number of Path Tear messages sent by this RSVP router. - PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` - // The number of Path Tear messages received by this RSVP router. - PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` - // The number of Resv Tear messages sent by this RSVP router. - ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` - // The number of Resv Tear messages received by this RSVP router. - ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` - // The number of Path Error messages sent by this RSVP router. - PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` - // The number of Path Error messages received by this RSVP router. - PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` - // The number of Resv Error messages sent by this RSVP router. - ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` - // The number of Resv Error messages received by this RSVP router. - ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` - // The number of ResvConf messages sent by this RSVP router. - ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` - // The number of ResvConf messages received by this RSVP router. - ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` - // The number of Hello messages sent by this RSVP router. - HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` - // The number of Hello messages received by this RSVP router. - HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` - // The number of Ack messages sent by this RSVP router. - AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` - // The number of Ack messages received by this RSVP router. - AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` - // The number of Nack messages sent by this RSVP router. - NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` - // The number of Nack messages received by this RSVP router. - NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` - // The number of SRefresh messages sent by this RSVP router. - SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` - // The number of SRefresh messages received by this RSVP router. - SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` - // The number of Bundle messages sent by this RSVP router. - BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` - // The number of Bundle messages received by this RSVP router. - BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` - // The number of Path messages with Path Re-evaluation Request enabled sent by this - // RSVP router. - PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` - // The number of successfully completed Make-Before-Break operations on LSPs on this - // RSVP router. - PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *RsvpMetric) Reset() { - *x = RsvpMetric{} +func (x *Bgpv4Metric) Reset() { + *x = Bgpv4Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[263] + mi := &file_otg_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetric) String() string { +func (x *Bgpv4Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetric) ProtoMessage() {} +func (*Bgpv4Metric) ProtoMessage() {} -func (x *RsvpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[263] +func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40792,268 +40813,271 @@ func (x *RsvpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. -func (*RsvpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{263} +// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269} } -func (x *RsvpMetric) GetName() string { +func (x *Bgpv4Metric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { - if x != nil && x.IngressP2PLspsConfigured != nil { - return *x.IngressP2PLspsConfigured - } - return 0 -} - -func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { - if x != nil && x.IngressP2PLspsUp != nil { - return *x.IngressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { - if x != nil && x.EgressP2PLspsUp != nil { - return *x.EgressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetLspFlapCount() uint64 { - if x != nil && x.LspFlapCount != nil { - return *x.LspFlapCount - } - return 0 -} - -func (x *RsvpMetric) GetPathsTx() uint64 { - if x != nil && x.PathsTx != nil { - return *x.PathsTx - } - return 0 -} - -func (x *RsvpMetric) GetPathsRx() uint64 { - if x != nil && x.PathsRx != nil { - return *x.PathsRx +func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState } - return 0 + return Bgpv4Metric_SessionState_unspecified } -func (x *RsvpMetric) GetResvsTx() uint64 { - if x != nil && x.ResvsTx != nil { - return *x.ResvsTx +func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount } return 0 } -func (x *RsvpMetric) GetResvsRx() uint64 { - if x != nil && x.ResvsRx != nil { - return *x.ResvsRx +func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised } return 0 } -func (x *RsvpMetric) GetPathTearsTx() uint64 { - if x != nil && x.PathTearsTx != nil { - return *x.PathTearsTx +func (x *Bgpv4Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived } return 0 } -func (x *RsvpMetric) GetPathTearsRx() uint64 { - if x != nil && x.PathTearsRx != nil { - return *x.PathTearsRx +func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } return 0 } -func (x *RsvpMetric) GetResvTearsTx() uint64 { - if x != nil && x.ResvTearsTx != nil { - return *x.ResvTearsTx +func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived } return 0 } -func (x *RsvpMetric) GetResvTearsRx() uint64 { - if x != nil && x.ResvTearsRx != nil { - return *x.ResvTearsRx +func (x *Bgpv4Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent } return 0 } -func (x *RsvpMetric) GetPathErrorsTx() uint64 { - if x != nil && x.PathErrorsTx != nil { - return *x.PathErrorsTx +func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } return 0 } -func (x *RsvpMetric) GetPathErrorsRx() uint64 { - if x != nil && x.PathErrorsRx != nil { - return *x.PathErrorsRx +func (x *Bgpv4Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent } return 0 } -func (x *RsvpMetric) GetResvErrorsTx() uint64 { - if x != nil && x.ResvErrorsTx != nil { - return *x.ResvErrorsTx +func (x *Bgpv4Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } return 0 } -func (x *RsvpMetric) GetResvErrorsRx() uint64 { - if x != nil && x.ResvErrorsRx != nil { - return *x.ResvErrorsRx +func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent } return 0 } -func (x *RsvpMetric) GetResvConfTx() uint64 { - if x != nil && x.ResvConfTx != nil { - return *x.ResvConfTx +func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived } return 0 } -func (x *RsvpMetric) GetResvConfRx() uint64 { - if x != nil && x.ResvConfRx != nil { - return *x.ResvConfRx +func (x *Bgpv4Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent } return 0 } -func (x *RsvpMetric) GetHellosTx() uint64 { - if x != nil && x.HellosTx != nil { - return *x.HellosTx +func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived } return 0 } -func (x *RsvpMetric) GetHellosRx() uint64 { - if x != nil && x.HellosRx != nil { - return *x.HellosRx +func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState } - return 0 + return Bgpv4Metric_FsmState_unspecified } -func (x *RsvpMetric) GetAcksTx() uint64 { - if x != nil && x.AcksTx != nil { - return *x.AcksTx +func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived } return 0 } -func (x *RsvpMetric) GetAcksRx() uint64 { - if x != nil && x.AcksRx != nil { - return *x.AcksRx - } - return 0 -} +// The request to retrieve BGPv6 per peer metrics/statistics. +type Bgpv6MetricsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpMetric) GetNacksTx() uint64 { - if x != nil && x.NacksTx != nil { - return *x.NacksTx - } - return 0 + // The names of BGPv6 peers to return results for. An empty list will return results + // for all BGPv6 peers. + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv6 peer cannot be excluded. + ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *RsvpMetric) GetNacksRx() uint64 { - if x != nil && x.NacksRx != nil { - return *x.NacksRx +func (x *Bgpv6MetricsRequest) Reset() { + *x = Bgpv6MetricsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[270] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *RsvpMetric) GetSrefreshTx() uint64 { - if x != nil && x.SrefreshTx != nil { - return *x.SrefreshTx - } - return 0 +func (x *Bgpv6MetricsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpMetric) GetSrefreshRx() uint64 { - if x != nil && x.SrefreshRx != nil { - return *x.SrefreshRx - } - return 0 -} +func (*Bgpv6MetricsRequest) ProtoMessage() {} -func (x *RsvpMetric) GetBundleTx() uint64 { - if x != nil && x.BundleTx != nil { - return *x.BundleTx +func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[270] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *RsvpMetric) GetBundleRx() uint64 { - if x != nil && x.BundleRx != nil { - return *x.BundleRx - } - return 0 +// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{270} } -func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { - if x != nil && x.PathReevaluationRequestTx != nil { - return *x.PathReevaluationRequestTx +func (x *Bgpv6MetricsRequest) GetPeerNames() []string { + if x != nil { + return x.PeerNames } - return 0 + return nil } -func (x *RsvpMetric) GetPathReoptimizations() uint64 { - if x != nil && x.PathReoptimizations != nil { - return *x.PathReoptimizations +func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } -// Request to traffic generator for states of choice -type StatesRequest struct { +// BGPv6 per peer statistics information. +type Bgpv6Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3,oneof" json:"ipv4_neighbors,omitempty"` - // Description missing in models - Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3,oneof" json:"ipv6_neighbors,omitempty"` - // Description missing in models - BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3,oneof" json:"bgp_prefixes,omitempty"` - // Description missing in models - IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3,oneof" json:"isis_lsps,omitempty"` - // Description missing in models - LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3,oneof" json:"lldp_neighbors,omitempty"` - // Description missing in models - RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3,oneof" json:"rsvp_lsps,omitempty"` + // The name of a configured BGPv6 peer. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *StatesRequest) Reset() { - *x = StatesRequest{} +func (x *Bgpv6Metric) Reset() { + *x = Bgpv6Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[264] + mi := &file_otg_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest) String() string { +func (x *Bgpv6Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest) ProtoMessage() {} +func (*Bgpv6Metric) ProtoMessage() {} -func (x *StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[264] +func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41064,199 +41088,168 @@ func (x *StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. -func (*StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264} +// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271} } -func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Bgpv6Metric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return StatesRequest_Choice_unspecified + return "" } -func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { - if x != nil { - return x.Ipv4Neighbors +func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState } - return nil + return Bgpv6Metric_SessionState_unspecified } -func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { - if x != nil { - return x.Ipv6Neighbors +func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount } - return nil + return 0 } -func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { - if x != nil { - return x.BgpPrefixes +func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised } - return nil + return 0 } -func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { - if x != nil { - return x.IsisLsps +func (x *Bgpv6Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived } - return nil + return 0 } -func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { - if x != nil { - return x.LldpNeighbors +func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } - return nil + return 0 } -func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { - if x != nil { - return x.RsvpLsps +func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived } - return nil -} - -// Response containing chosen traffic generator states -type StatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` - // Description missing in models - Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` - // Description missing in models - BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` - // Description missing in models - IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` - // Description missing in models - LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` - // Description missing in models - RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + return 0 } -func (x *StatesResponse) Reset() { - *x = StatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[265] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Bgpv6Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent } + return 0 } -func (x *StatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatesResponse) ProtoMessage() {} - -func (x *StatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[265] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. -func (*StatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265} +func (x *Bgpv6Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent + } + return 0 } -func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Bgpv6Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } - return StatesResponse_Choice_unspecified + return 0 } -func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { - if x != nil { - return x.Ipv4Neighbors +func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent } - return nil + return 0 } -func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { - if x != nil { - return x.Ipv6Neighbors +func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived } - return nil + return 0 } -func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { - if x != nil { - return x.BgpPrefixes +func (x *Bgpv6Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent } - return nil + return 0 } -func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { - if x != nil { - return x.IsisLsps +func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived } - return nil + return 0 } -func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { - if x != nil { - return x.LldpNeighbors +func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState } - return nil + return Bgpv6Metric_FsmState_unspecified } -func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { - if x != nil { - return x.RsvpLsps +func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived } - return nil + return 0 } -// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). -type Neighborsv4StatesRequest struct { +// The request to retrieve ISIS per Router metrics/statistics. +type IsisMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (ARP cache entries) for all available Ethernet interfaces. + // The names of ISIS Routers to return results for. An empty list will return results + // for all ISIS router. // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.IsisRouter/properties/name // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` + // - /components/schemas/Device.IsisRouter/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the ISIS Router cannot be excluded. + ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *Neighborsv4StatesRequest) Reset() { - *x = Neighborsv4StatesRequest{} +func (x *IsisMetricsRequest) Reset() { + *x = IsisMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[266] + mi := &file_otg_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4StatesRequest) String() string { +func (x *IsisMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4StatesRequest) ProtoMessage() {} +func (*IsisMetricsRequest) ProtoMessage() {} -func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[266] +func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41267,52 +41260,104 @@ func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266} +// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{272} } -func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { +func (x *IsisMetricsRequest) GetRouterNames() []string { if x != nil { - return x.EthernetNames + return x.RouterNames } return nil } -// IPv4 Neighbor state (ARP cache entry). -type Neighborsv4State struct { +func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// ISIS per router statistics information. +type IsisMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the Ethernet interface associated with the Neighbor state (ARP cache - // entry). - // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` - // The IPv4 address of the neighbor. - // required = true - Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` + // The name of a configured ISIS router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of Level 1 (L1) sessions that are fully up. + L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` + // The number of Level 1 Sessions Flap. + L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` + // Number of Level 1 Hello messages sent. + L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` + // Number of Level 1 Hello messages received. + L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages sent. + L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages received. + L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. + L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` + // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. + L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. + L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. + L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. + L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. + L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. + L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` + // The number of Level 2 (L2) sessions that are fully up. + L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` + // The number of Level 2 Sessions Flap. + L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` + // Number of Level 2 Hello messages sent. + L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` + // Number of Level 2 Hello messages received. + L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages sent. + L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages received. + L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. + L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` + // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. + L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. + L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. + L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. + L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. + L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. + L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` } -func (x *Neighborsv4State) Reset() { - *x = Neighborsv4State{} +func (x *IsisMetric) Reset() { + *x = IsisMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[267] + mi := &file_otg_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4State) String() string { +func (x *IsisMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4State) ProtoMessage() {} +func (*IsisMetric) ProtoMessage() {} -func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[267] +func (x *IsisMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41323,285 +41368,237 @@ func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. -func (*Neighborsv4State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267} +// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. +func (*IsisMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{273} } -func (x *Neighborsv4State) GetEthernetName() string { - if x != nil { - return x.EthernetName +func (x *IsisMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *Neighborsv4State) GetIpv4Address() string { - if x != nil { - return x.Ipv4Address +func (x *IsisMetric) GetL1SessionsUp() uint32 { + if x != nil && x.L1SessionsUp != nil { + return *x.L1SessionsUp } - return "" + return 0 } -func (x *Neighborsv4State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *IsisMetric) GetL1SessionFlap() uint64 { + if x != nil && x.L1SessionFlap != nil { + return *x.L1SessionFlap } - return "" + return 0 } -// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). -type Neighborsv6StatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (NDISC cache entries) for all available Ethernet interfaces. - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` +func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { + if x != nil && x.L1BroadcastHellosSent != nil { + return *x.L1BroadcastHellosSent + } + return 0 } -func (x *Neighborsv6StatesRequest) Reset() { - *x = Neighborsv6StatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[268] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { + if x != nil && x.L1BroadcastHellosReceived != nil { + return *x.L1BroadcastHellosReceived } + return 0 } -func (x *Neighborsv6StatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { + if x != nil && x.L1PointToPointHellosSent != nil { + return *x.L1PointToPointHellosSent + } + return 0 } -func (*Neighborsv6StatesRequest) ProtoMessage() {} - -func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[268] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { + if x != nil && x.L1PointToPointHellosReceived != nil { + return *x.L1PointToPointHellosReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268} +func (x *IsisMetric) GetL1DatabaseSize() uint64 { + if x != nil && x.L1DatabaseSize != nil { + return *x.L1DatabaseSize + } + return 0 } -func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { - if x != nil { - return x.EthernetNames +func (x *IsisMetric) GetL1PsnpSent() uint64 { + if x != nil && x.L1PsnpSent != nil { + return *x.L1PsnpSent } - return nil + return 0 } -// IPv6 Neighbor state (NDISC cache entry). -type Neighborsv6State struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The name of the Ethernet interface associated with the Neighbor state (NDISC cache - // entry). - // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` - // The IPv6 address of the neighbor. - // required = true - Ipv6Address string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3" json:"ipv6_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` +func (x *IsisMetric) GetL1PsnpReceived() uint64 { + if x != nil && x.L1PsnpReceived != nil { + return *x.L1PsnpReceived + } + return 0 } -func (x *Neighborsv6State) Reset() { - *x = Neighborsv6State{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[269] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1CsnpSent() uint64 { + if x != nil && x.L1CsnpSent != nil { + return *x.L1CsnpSent } + return 0 } -func (x *Neighborsv6State) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1CsnpReceived() uint64 { + if x != nil && x.L1CsnpReceived != nil { + return *x.L1CsnpReceived + } + return 0 } -func (*Neighborsv6State) ProtoMessage() {} - -func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[269] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL1LspSent() uint64 { + if x != nil && x.L1LspSent != nil { + return *x.L1LspSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. -func (*Neighborsv6State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269} +func (x *IsisMetric) GetL1LspReceived() uint64 { + if x != nil && x.L1LspReceived != nil { + return *x.L1LspReceived + } + return 0 } -func (x *Neighborsv6State) GetEthernetName() string { - if x != nil { - return x.EthernetName +func (x *IsisMetric) GetL2SessionsUp() uint32 { + if x != nil && x.L2SessionsUp != nil { + return *x.L2SessionsUp } - return "" + return 0 } -func (x *Neighborsv6State) GetIpv6Address() string { - if x != nil { - return x.Ipv6Address +func (x *IsisMetric) GetL2SessionFlap() uint64 { + if x != nil && x.L2SessionFlap != nil { + return *x.L2SessionFlap } - return "" + return 0 } -func (x *Neighborsv6State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { + if x != nil && x.L2BroadcastHellosSent != nil { + return *x.L2BroadcastHellosSent } - return "" + return 0 } -// The request to retrieve BGP peer prefix information. -type BgpPrefixStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of BGP peers for which prefix information will be retrieved. If no names - // are specified then the results will contain prefix information for all configured - // BGP peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` - // Specify which prefixes to return. If the list is empty or missing then all prefixes - // will be returned. - PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` - // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will - // be returned. - Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` - // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will - // be returned. - Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` +func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { + if x != nil && x.L2BroadcastHellosReceived != nil { + return *x.L2BroadcastHellosReceived + } + return 0 } -func (x *BgpPrefixStateRequest) Reset() { - *x = BgpPrefixStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[270] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { + if x != nil && x.L2PointToPointHellosSent != nil { + return *x.L2PointToPointHellosSent } + return 0 } -func (x *BgpPrefixStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { + if x != nil && x.L2PointToPointHellosReceived != nil { + return *x.L2PointToPointHellosReceived + } + return 0 } -func (*BgpPrefixStateRequest) ProtoMessage() {} - -func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[270] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL2DatabaseSize() uint64 { + if x != nil && x.L2DatabaseSize != nil { + return *x.L2DatabaseSize } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270} +func (x *IsisMetric) GetL2PsnpSent() uint64 { + if x != nil && x.L2PsnpSent != nil { + return *x.L2PsnpSent + } + return 0 } -func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { - if x != nil { - return x.BgpPeerNames +func (x *IsisMetric) GetL2PsnpReceived() uint64 { + if x != nil && x.L2PsnpReceived != nil { + return *x.L2PsnpReceived } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { - if x != nil { - return x.PrefixFilters +func (x *IsisMetric) GetL2CsnpSent() uint64 { + if x != nil && x.L2CsnpSent != nil { + return *x.L2CsnpSent } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { - if x != nil { - return x.Ipv4UnicastFilters +func (x *IsisMetric) GetL2CsnpReceived() uint64 { + if x != nil && x.L2CsnpReceived != nil { + return *x.L2CsnpReceived } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { - if x != nil { - return x.Ipv6UnicastFilters +func (x *IsisMetric) GetL2LspSent() uint64 { + if x != nil && x.L2LspSent != nil { + return *x.L2LspSent } - return nil + return 0 } -// Description missing in models -type BgpPrefixIpv4UnicastFilter struct { +func (x *IsisMetric) GetL2LspReceived() uint64 { + if x != nil && x.L2LspReceived != nil { + return *x.L2LspReceived + } + return 0 +} + +// The request to retrieve per LAG metrics/statistics. +type LagMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The names of LAGs to return results for. An empty list will return results for all + // LAGs. + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the LAG cannot be excluded. + ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixIpv4UnicastFilter) Reset() { - *x = BgpPrefixIpv4UnicastFilter{} +func (x *LagMetricsRequest) Reset() { + *x = LagMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[271] + mi := &file_otg_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter) String() string { +func (x *LagMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} +func (*LagMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[271] +func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41612,74 +41609,79 @@ func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271} +// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274} } -func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { +func (x *LagMetricsRequest) GetLagNames() []string { if x != nil { - return x.Addresses + return x.LagNames } return nil } -func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin - } - return BgpPrefixIpv4UnicastFilter_Origin_unspecified -} - -func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } // Description missing in models -type BgpPrefixIpv6UnicastFilter struct { +type LagMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The name of a configured LAG + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The current operational state of the LAG. The state can be up or down. State 'up' + // indicates member_ports_up >= min_links. + OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` + // The number of LAG member ports up. + MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` + // The current total number of frames transmitted. + FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received. + FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted. + BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received. + BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted. + FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received. + FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted. + BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received. + BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` } -func (x *BgpPrefixIpv6UnicastFilter) Reset() { - *x = BgpPrefixIpv6UnicastFilter{} +func (x *LagMetric) Reset() { + *x = LagMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[272] + mi := &file_otg_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter) String() string { +func (x *LagMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} +func (*LagMetric) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[272] +func (x *LagMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41690,70 +41692,135 @@ func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272} +// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. +func (*LagMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{275} } -func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { - if x != nil { - return x.Addresses +func (x *LagMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { + if x != nil && x.OperStatus != nil { + return *x.OperStatus + } + return LagMetric_OperStatus_unspecified +} + +func (x *LagMetric) GetMemberPortsUp() uint32 { + if x != nil && x.MemberPortsUp != nil { + return *x.MemberPortsUp } return 0 } -func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *LagMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } - return BgpPrefixIpv6UnicastFilter_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LagMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -// BGP peer prefixes. -type BgpPrefixesState struct { +func (x *LagMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx + } + return 0 +} + +func (x *LagMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx + } + return 0 +} + +func (x *LagMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate + } + return 0 +} + +func (x *LagMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate + } + return 0 +} + +func (x *LagMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate + } + return 0 +} + +func (x *LagMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate + } + return 0 +} + +// The request to retrieve LACP per LAG member metrics/statistics. +type LacpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a BGP peer. - BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` - // Description missing in models - Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` - // Description missing in models - Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` + // The names of LAG (ports group) for which LACP metrics to be returned. An empty list + // will return metrics for all LAGs. + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The names of LAG members (ports) for which LACP metrics to be returned. An empty + // list will return metrics for all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of LAG and LAG member can not be + // excluded. + ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixesState) Reset() { - *x = BgpPrefixesState{} +func (x *LacpMetricsRequest) Reset() { + *x = LacpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[273] + mi := &file_otg_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixesState) String() string { +func (x *LacpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixesState) ProtoMessage() {} +func (*LacpMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[273] +func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41764,79 +41831,94 @@ func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. -func (*BgpPrefixesState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{273} +// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{276} } -func (x *BgpPrefixesState) GetBgpPeerName() string { - if x != nil && x.BgpPeerName != nil { - return *x.BgpPeerName +func (x *LacpMetricsRequest) GetLagNames() []string { + if x != nil { + return x.LagNames } - return "" + return nil } -func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { +func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { if x != nil { - return x.Ipv4UnicastPrefixes + return x.LagMemberPortNames } return nil } -func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { +func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.Ipv6UnicastPrefixes + return x.ColumnNames } return nil } -// IPv4 unicast prefix. -type BgpPrefixIpv4UnicastState struct { +// LACP metrics (statistics) per LAG member. +type LacpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast address - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + // The name of a LAG (ports group) configured with LACP. + LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` + // The name of a LAG member (port) configured with LACP. + LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` + // Number of LACPDUs received. + LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` + // Number of LACPDUs transmitted. + LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` + // Number of LACPDUs receive packet errors. + LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` + // Indicates participant is active or passive. + Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` + // The timeout type (short or long) used by the participant. + Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` + // Indicates whether the participant is in-sync or out-of-sync. + Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` + // A true value indicates that the participant will allow the link to be used as part + // of the aggregate. A false value indicates the link should be used as an individual + // link. + Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` + // If true, the participant is collecting incoming frames on the link, otherwise false. + Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` + // When true, the participant is distributing outgoing frames; when false, distribution + // is disabled. + Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` + // MAC address that defines the local system ID for the aggregate interface. + SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // Current operational value of the key for the aggregate interface. + OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` + // MAC address representing the protocol partner's interface system ID. + PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` + // Operational value of the protocol partner's key. + PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` + // Port number of the local (actor) aggregation member. + PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` + // Port number of the partner (remote) port for this member port. + PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` } -func (x *BgpPrefixIpv4UnicastState) Reset() { - *x = BgpPrefixIpv4UnicastState{} +func (x *LacpMetric) Reset() { + *x = LacpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[274] + mi := &file_otg_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastState) String() string { +func (x *LacpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} +func (*LacpMetric) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[274] +func (x *LacpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41847,128 +41929,167 @@ func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274} +// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. +func (*LacpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277} } -func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *LacpMetric) GetLagName() string { + if x != nil && x.LagName != nil { + return *x.LagName } return "" } -func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *LacpMetric) GetLagMemberPortName() string { + if x != nil && x.LagMemberPortName != nil { + return *x.LagMemberPortName + } + return "" +} + +func (x *LacpMetric) GetLacpPacketsRx() uint64 { + if x != nil && x.LacpPacketsRx != nil { + return *x.LacpPacketsRx } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *LacpMetric) GetLacpPacketsTx() uint64 { + if x != nil && x.LacpPacketsTx != nil { + return *x.LacpPacketsTx } - return BgpPrefixIpv4UnicastState_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LacpMetric) GetLacpRxErrors() uint64 { + if x != nil && x.LacpRxErrors != nil { + return *x.LacpRxErrors } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop +func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { + if x != nil && x.Activity != nil { + return *x.Activity } - return "" + return LacpMetric_Activity_unspecified } -func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop +func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return LacpMetric_Timeout_unspecified +} + +func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { + if x != nil && x.Synchronization != nil { + return *x.Synchronization + } + return LacpMetric_Synchronization_unspecified +} + +func (x *LacpMetric) GetAggregatable() bool { + if x != nil && x.Aggregatable != nil { + return *x.Aggregatable + } + return false +} + +func (x *LacpMetric) GetCollecting() bool { + if x != nil && x.Collecting != nil { + return *x.Collecting + } + return false +} + +func (x *LacpMetric) GetDistributing() bool { + if x != nil && x.Distributing != nil { + return *x.Distributing + } + return false +} + +func (x *LacpMetric) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } -func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { - if x != nil { - return x.Communities +func (x *LacpMetric) GetOperKey() uint32 { + if x != nil && x.OperKey != nil { + return *x.OperKey } - return nil + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { - if x != nil { - return x.AsPath +func (x *LacpMetric) GetPartnerId() string { + if x != nil && x.PartnerId != nil { + return *x.PartnerId } - return nil + return "" } -func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference +func (x *LacpMetric) GetPartnerKey() uint32 { + if x != nil && x.PartnerKey != nil { + return *x.PartnerKey } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator +func (x *LacpMetric) GetPortNum() uint32 { + if x != nil && x.PortNum != nil { + return *x.PortNum } return 0 } -// IPv6 unicast prefix. -type BgpPrefixIpv6UnicastState struct { +func (x *LacpMetric) GetPartnerPortNum() uint32 { + if x != nil && x.PartnerPortNum != nil { + return *x.PartnerPortNum + } + return 0 +} + +// The request to retrieve LLDP per instance metrics/statistics. +type LldpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast address - Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + // The names of LLDP instances to return results for. An empty list will return results + // for all LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // The requested list of column names for the result set. If the list is empty then + // metrics for all columns will be returned. The name of LLDP instance can not be excluded. + ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixIpv6UnicastState) Reset() { - *x = BgpPrefixIpv6UnicastState{} +func (x *LldpMetricsRequest) Reset() { + *x = LldpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[275] + mi := &file_otg_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastState) String() string { +func (x *LldpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} +func (*LldpMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[275] +func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41979,115 +42100,74 @@ func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275} -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address - } - return "" -} - -func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin - } - return BgpPrefixIpv6UnicastState_Origin_unspecified -} - -func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop - } - return "" -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop - } - return "" +// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{278} } -func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { +func (x *LldpMetricsRequest) GetLldpNames() []string { if x != nil { - return x.Communities + return x.LldpNames } return nil } -func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { +func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.AsPath + return x.ColumnNames } return nil } -func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator - } - return 0 -} - -// BGP communities provide additional capability for tagging routes and for modifying -// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit -// number which is broken into 16-bit AS number and a 16-bit custom value. -type ResultBgpCommunity struct { +// LLDP per instance statistics information. +type LldpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of community AS number. If community type is manual_as_number then as_number - // and as_custom will be available. - Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` - // First two octets of 32 bit community AS number. - AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Last two octets of the community value. - AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` + // The name of the configured LLDP instance. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of LLDP frames received. + FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // Number of LLDP frames transmitted. + FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // Number of LLDP frames received with packet errors. This stat should be incremented + // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 + // AB-2005. + FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` + // Number of LLDP frames received that are discarded. This stat should be incremented + // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, + // out of order or contains an out of range information string length. This stat should + // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. + FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` + // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition + // specific for that particular TLV or if any TLV extends past the physical end of + // the frame then these TLVs will be discarded. + TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` + // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific + // TLV and/or organizationally defined subtype are not recognized,or if TLV type value + // is in the range of reserved TLV types then these TLVs will be considered as unknown + // TLVs. + TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` } -func (x *ResultBgpCommunity) Reset() { - *x = ResultBgpCommunity{} +func (x *LldpMetric) Reset() { + *x = LldpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[276] + mi := &file_otg_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpCommunity) String() string { +func (x *LldpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity) ProtoMessage() {} +func (*LldpMetric) ProtoMessage() {} -func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[276] +func (x *LldpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42098,118 +42178,97 @@ func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276} +// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. +func (*LldpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{279} } -func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *LldpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return ResultBgpCommunity_Type_unspecified + return "" } -func (x *ResultBgpCommunity) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *LldpMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -func (x *ResultBgpCommunity) GetAsCustom() uint32 { - if x != nil && x.AsCustom != nil { - return *x.AsCustom +func (x *LldpMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } return 0 } -// This attribute identifies the autonomous systems through which routing information -// carried in this UPDATE message has passed. -type ResultBgpAsPath struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // AS Path segments present in the received AS Path attribute. - Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` -} - -func (x *ResultBgpAsPath) Reset() { - *x = ResultBgpAsPath{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[277] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LldpMetric) GetFramesErrorRx() uint64 { + if x != nil && x.FramesErrorRx != nil { + return *x.FramesErrorRx } + return 0 } -func (x *ResultBgpAsPath) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResultBgpAsPath) ProtoMessage() {} - -func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[277] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LldpMetric) GetFramesDiscard() uint64 { + if x != nil && x.FramesDiscard != nil { + return *x.FramesDiscard } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277} +func (x *LldpMetric) GetTlvsDiscard() uint64 { + if x != nil && x.TlvsDiscard != nil { + return *x.TlvsDiscard + } + return 0 } -func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { - if x != nil { - return x.Segments +func (x *LldpMetric) GetTlvsUnknown() uint64 { + if x != nil && x.TlvsUnknown != nil { + return *x.TlvsUnknown } - return nil + return 0 } -// Configuration for a single BGP AS path segment -type ResultBgpAsPathSegment struct { +// The request to retrieve RSVP-TE per Router metrics/statistics. +type RsvpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting - // with the most recent ASN being added read from left to right. - // The other three AS_PATH types are used for Confederations - AS_SET is the type of - // AS_PATH attribute that summarizes routes using using the aggregate-address command, - // allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives - // the list of ASNs in the path starting with the most recent ASN to be added reading - // left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be - // sent in BGP Updates. - Type *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` + // The names of RSVP-TE Routers to return results for. An empty list as input will return + // results for all RSVP-TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the input + // list is empty then all columns will be returned except for any result_groups. + ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultBgpAsPathSegment) Reset() { - *x = ResultBgpAsPathSegment{} +func (x *RsvpMetricsRequest) Reset() { + *x = RsvpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[278] + mi := &file_otg_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpAsPathSegment) String() string { +func (x *RsvpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment) ProtoMessage() {} +func (*RsvpMetricsRequest) ProtoMessage() {} -func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[278] +func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42220,59 +42279,119 @@ func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278} +// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{280} } -func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *RsvpMetricsRequest) GetRouterNames() []string { + if x != nil { + return x.RouterNames } - return ResultBgpAsPathSegment_Type_unspecified + return nil } -func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { +func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.AsNumbers + return x.ColumnNames } return nil } -// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. -type IsisLspsStateRequest struct { +// RSVP-TE per router statistics information. +type RsvpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS routers for which learned information is requested. An empty list - // will return results for all ISIS routers. - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` + // The name of a configured RSVP router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of ingress point-to-point LSPs configured or transiting through the RSVP + // router which have been initated from the test port. + IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` + // The number of ingress point-to-point LSPs for which Resv has been received and is + // currently up. + IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` + // The number of egress point-to-point LSPs for which Path requests were successfully + // processed and is currently up. + EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` + // The number of times an LSP went from up to down state either because it timed out + // while waiting for Refreshes or a PathTear or ResvTear message was received which + // caused the LSP to flap. + LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` + // The number of Path messages sent by this RSVP router. + PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` + // The number of Path messages received by this RSVP router. + PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` + // The number of Resv messages sent by this RSVP router. + ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` + // The number of Resv messages received by this RSVP router. + ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` + // The number of Path Tear messages sent by this RSVP router. + PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` + // The number of Path Tear messages received by this RSVP router. + PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` + // The number of Resv Tear messages sent by this RSVP router. + ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` + // The number of Resv Tear messages received by this RSVP router. + ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` + // The number of Path Error messages sent by this RSVP router. + PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` + // The number of Path Error messages received by this RSVP router. + PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` + // The number of Resv Error messages sent by this RSVP router. + ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` + // The number of Resv Error messages received by this RSVP router. + ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` + // The number of ResvConf messages sent by this RSVP router. + ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` + // The number of ResvConf messages received by this RSVP router. + ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` + // The number of Hello messages sent by this RSVP router. + HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` + // The number of Hello messages received by this RSVP router. + HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` + // The number of Ack messages sent by this RSVP router. + AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` + // The number of Ack messages received by this RSVP router. + AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` + // The number of Nack messages sent by this RSVP router. + NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` + // The number of Nack messages received by this RSVP router. + NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` + // The number of SRefresh messages sent by this RSVP router. + SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` + // The number of SRefresh messages received by this RSVP router. + SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` + // The number of Bundle messages sent by this RSVP router. + BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` + // The number of Bundle messages received by this RSVP router. + BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` + // The number of Path messages with Path Re-evaluation Request enabled sent by this + // RSVP router. + PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` + // The number of successfully completed Make-Before-Break operations on LSPs on this + // RSVP router. + PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` } -func (x *IsisLspsStateRequest) Reset() { - *x = IsisLspsStateRequest{} +func (x *RsvpMetric) Reset() { + *x = RsvpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[279] + mi := &file_otg_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspsStateRequest) String() string { +func (x *RsvpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspsStateRequest) ProtoMessage() {} +func (*RsvpMetric) ProtoMessage() {} -func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[279] +func (x *RsvpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42283,222 +42402,253 @@ func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. -func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279} +// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. +func (*RsvpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{281} } -func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { - if x != nil { - return x.IsisRouterNames +func (x *RsvpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// The result of ISIS LSP information that are retrieved. -type IsisLspsState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { + if x != nil && x.IngressP2PLspsConfigured != nil { + return *x.IngressP2PLspsConfigured + } + return 0 +} - // The name of the ISIS Router. - IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` - // One or more LSPs that are learned by this ISIS router. - Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` +func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { + if x != nil && x.IngressP2PLspsUp != nil { + return *x.IngressP2PLspsUp + } + return 0 } -func (x *IsisLspsState) Reset() { - *x = IsisLspsState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[280] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { + if x != nil && x.EgressP2PLspsUp != nil { + return *x.EgressP2PLspsUp } + return 0 } -func (x *IsisLspsState) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetLspFlapCount() uint64 { + if x != nil && x.LspFlapCount != nil { + return *x.LspFlapCount + } + return 0 } -func (*IsisLspsState) ProtoMessage() {} +func (x *RsvpMetric) GetPathsTx() uint64 { + if x != nil && x.PathsTx != nil { + return *x.PathsTx + } + return 0 +} -func (x *IsisLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[280] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetPathsRx() uint64 { + if x != nil && x.PathsRx != nil { + return *x.PathsRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. -func (*IsisLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280} +func (x *RsvpMetric) GetResvsTx() uint64 { + if x != nil && x.ResvsTx != nil { + return *x.ResvsTx + } + return 0 } -func (x *IsisLspsState) GetIsisRouterName() string { - if x != nil && x.IsisRouterName != nil { - return *x.IsisRouterName +func (x *RsvpMetric) GetResvsRx() uint64 { + if x != nil && x.ResvsRx != nil { + return *x.ResvsRx } - return "" + return 0 } -func (x *IsisLspsState) GetLsps() []*IsisLspState { - if x != nil { - return x.Lsps +func (x *RsvpMetric) GetPathTearsTx() uint64 { + if x != nil && x.PathTearsTx != nil { + return *x.PathTearsTx } - return nil + return 0 } -// ISIS LSP. -type IsisLspState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RsvpMetric) GetPathTearsRx() uint64 { + if x != nil && x.PathTearsRx != nil { + return *x.PathTearsRx + } + return 0 +} - // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID - // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent - // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation - // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN - // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with - // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. - // Then the sequence number is incremented by 1. - // required = true - LspId string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` - // Link State PDU type. - PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` - // Remaining lifetime in seconds before LSP expires. - RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` - // Sequence number of the LSP. - SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` - // Total length of the LSP. - PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` - // LSP Type-Block flags. - Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // IS Type - bits 1 and 2 indicate the type of Intermediate System. - // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. - // 2 - Unused value. - // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. - IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` - // It refers to Link State PDU State TLVs container. - Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3,oneof" json:"tlvs,omitempty"` +func (x *RsvpMetric) GetResvTearsTx() uint64 { + if x != nil && x.ResvTearsTx != nil { + return *x.ResvTearsTx + } + return 0 } -func (x *IsisLspState) Reset() { - *x = IsisLspState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[281] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetResvTearsRx() uint64 { + if x != nil && x.ResvTearsRx != nil { + return *x.ResvTearsRx } + return 0 } -func (x *IsisLspState) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetPathErrorsTx() uint64 { + if x != nil && x.PathErrorsTx != nil { + return *x.PathErrorsTx + } + return 0 } -func (*IsisLspState) ProtoMessage() {} +func (x *RsvpMetric) GetPathErrorsRx() uint64 { + if x != nil && x.PathErrorsRx != nil { + return *x.PathErrorsRx + } + return 0 +} -func (x *IsisLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[281] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetResvErrorsTx() uint64 { + if x != nil && x.ResvErrorsTx != nil { + return *x.ResvErrorsTx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. -func (*IsisLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281} +func (x *RsvpMetric) GetResvErrorsRx() uint64 { + if x != nil && x.ResvErrorsRx != nil { + return *x.ResvErrorsRx + } + return 0 } -func (x *IsisLspState) GetLspId() string { - if x != nil { - return x.LspId +func (x *RsvpMetric) GetResvConfTx() uint64 { + if x != nil && x.ResvConfTx != nil { + return *x.ResvConfTx } - return "" + return 0 } -func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { - if x != nil && x.PduType != nil { - return *x.PduType +func (x *RsvpMetric) GetResvConfRx() uint64 { + if x != nil && x.ResvConfRx != nil { + return *x.ResvConfRx } - return IsisLspState_PduType_unspecified + return 0 } -func (x *IsisLspState) GetRemainingLifetime() uint32 { - if x != nil && x.RemainingLifetime != nil { - return *x.RemainingLifetime +func (x *RsvpMetric) GetHellosTx() uint64 { + if x != nil && x.HellosTx != nil { + return *x.HellosTx } return 0 } -func (x *IsisLspState) GetSequenceNumber() uint64 { - if x != nil && x.SequenceNumber != nil { - return *x.SequenceNumber +func (x *RsvpMetric) GetHellosRx() uint64 { + if x != nil && x.HellosRx != nil { + return *x.HellosRx } return 0 } -func (x *IsisLspState) GetPduLength() uint32 { - if x != nil && x.PduLength != nil { - return *x.PduLength +func (x *RsvpMetric) GetAcksTx() uint64 { + if x != nil && x.AcksTx != nil { + return *x.AcksTx } return 0 } -func (x *IsisLspState) GetFlags() *IsisLspFlags { - if x != nil { - return x.Flags +func (x *RsvpMetric) GetAcksRx() uint64 { + if x != nil && x.AcksRx != nil { + return *x.AcksRx } - return nil + return 0 } -func (x *IsisLspState) GetIsType() uint32 { - if x != nil && x.IsType != nil { - return *x.IsType +func (x *RsvpMetric) GetNacksTx() uint64 { + if x != nil && x.NacksTx != nil { + return *x.NacksTx } return 0 } -func (x *IsisLspState) GetTlvs() *IsisLspTlvs { - if x != nil { - return x.Tlvs +func (x *RsvpMetric) GetNacksRx() uint64 { + if x != nil && x.NacksRx != nil { + return *x.NacksRx } - return nil + return 0 } -// This contains the list of TLVs present in one LSP. -type IsisLspTlvs struct { +func (x *RsvpMetric) GetSrefreshTx() uint64 { + if x != nil && x.SrefreshTx != nil { + return *x.SrefreshTx + } + return 0 +} + +func (x *RsvpMetric) GetSrefreshRx() uint64 { + if x != nil && x.SrefreshRx != nil { + return *x.SrefreshRx + } + return 0 +} + +func (x *RsvpMetric) GetBundleTx() uint64 { + if x != nil && x.BundleTx != nil { + return *x.BundleTx + } + return 0 +} + +func (x *RsvpMetric) GetBundleRx() uint64 { + if x != nil && x.BundleRx != nil { + return *x.BundleRx + } + return 0 +} + +func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { + if x != nil && x.PathReevaluationRequestTx != nil { + return *x.PathReevaluationRequestTx + } + return 0 +} + +func (x *RsvpMetric) GetPathReoptimizations() uint64 { + if x != nil && x.PathReoptimizations != nil { + return *x.PathReoptimizations + } + return 0 +} + +// Request to traffic generator for states of choice +type StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Array of Hostname TLVs ( type 137) present in this LSP. - HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` - // Array of IS-Reachability TLVs (type 2) present in this LSP. - IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` - // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. - ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` - // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. - Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` - // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. - Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` - // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. - ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` - // Array of IPv6 Reachability TLVs (type 236) present in this LSP. - Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3,oneof" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3,oneof" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3,oneof" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3,oneof" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3,oneof" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3,oneof" json:"rsvp_lsps,omitempty"` } -func (x *IsisLspTlvs) Reset() { - *x = IsisLspTlvs{} +func (x *StatesRequest) Reset() { + *x = StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42506,13 +42656,13 @@ func (x *IsisLspTlvs) Reset() { } } -func (x *IsisLspTlvs) String() string { +func (x *StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspTlvs) ProtoMessage() {} +func (*StatesRequest) ProtoMessage() {} -func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { +func (x *StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42524,72 +42674,85 @@ func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. -func (*IsisLspTlvs) Descriptor() ([]byte, []int) { +// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. +func (*StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{282} } -func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { - if x != nil { - return x.HostnameTlvs +func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return StatesRequest_Choice_unspecified } -func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { +func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { if x != nil { - return x.IsReachabilityTlvs + return x.Ipv4Neighbors } return nil } -func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { +func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { if x != nil { - return x.ExtendedIsReachabilityTlvs + return x.Ipv6Neighbors } return nil } -func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { +func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { if x != nil { - return x.Ipv4InternalReachabilityTlvs + return x.BgpPrefixes } return nil } -func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { +func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { if x != nil { - return x.Ipv4ExternalReachabilityTlvs + return x.IsisLsps } return nil } -func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { +func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { if x != nil { - return x.ExtendedIpv4ReachabilityTlvs + return x.LldpNeighbors } return nil } -func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { +func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { if x != nil { - return x.Ipv6ReachabilityTlvs + return x.RsvpLsps } return nil } -// It contains Hostname for the TLV 137. -type IsisLspHostname struct { +// Response containing chosen traffic generator states +type StatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Hostname for an ISIS router. - Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` } -func (x *IsisLspHostname) Reset() { - *x = IsisLspHostname{} +func (x *StatesResponse) Reset() { + *x = StatesResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42597,13 +42760,13 @@ func (x *IsisLspHostname) Reset() { } } -func (x *IsisLspHostname) String() string { +func (x *StatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspHostname) ProtoMessage() {} +func (*StatesResponse) ProtoMessage() {} -func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { +func (x *StatesResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42615,44 +42778,80 @@ func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. -func (*IsisLspHostname) Descriptor() ([]byte, []int) { +// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. +func (*StatesResponse) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{283} } -func (x *IsisLspHostname) GetHostname() string { - if x != nil && x.Hostname != nil { - return *x.Hostname +func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StatesResponse_Choice_unspecified } -// LSP Type flags. -type IsisLspFlags struct { +func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { + if x != nil { + return x.Ipv4Neighbors + } + return nil +} + +func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { + if x != nil { + return x.Ipv6Neighbors + } + return nil +} + +func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { + if x != nil { + return x.BgpPrefixes + } + return nil +} + +func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { + if x != nil { + return x.IsisLsps + } + return nil +} + +func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { + if x != nil { + return x.LldpNeighbors + } + return nil +} + +func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { + if x != nil { + return x.RsvpLsps + } + return nil +} + +// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). +type Neighborsv4StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // When set, the originator supports partition repair. - PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` - // When set, the originator is attached to another area using the referred metric. - AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` - // When set, the originator is attached to another - // area using the referred metric. - AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` - // Delay Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` - // Default Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` - // Overload bit - when set, the originator is overloaded, and must - // be avoided in path calculation. - Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` + // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (ARP cache entries) for all available Ethernet interfaces. + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *IsisLspFlags) Reset() { - *x = IsisLspFlags{} +func (x *Neighborsv4StatesRequest) Reset() { + *x = Neighborsv4StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42660,13 +42859,13 @@ func (x *IsisLspFlags) Reset() { } } -func (x *IsisLspFlags) String() string { +func (x *Neighborsv4StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspFlags) ProtoMessage() {} +func (*Neighborsv4StatesRequest) ProtoMessage() {} -func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { +func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42678,66 +42877,37 @@ func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. -func (*IsisLspFlags) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{284} } -func (x *IsisLspFlags) GetPartitionRepair() bool { - if x != nil && x.PartitionRepair != nil { - return *x.PartitionRepair - } - return false -} - -func (x *IsisLspFlags) GetAttachedError() bool { - if x != nil && x.AttachedError != nil { - return *x.AttachedError - } - return false -} - -func (x *IsisLspFlags) GetAttachedExpense() bool { - if x != nil && x.AttachedExpense != nil { - return *x.AttachedExpense - } - return false -} - -func (x *IsisLspFlags) GetAttachedDelay() bool { - if x != nil && x.AttachedDelay != nil { - return *x.AttachedDelay - } - return false -} - -func (x *IsisLspFlags) GetAttachedDefault() bool { - if x != nil && x.AttachedDefault != nil { - return *x.AttachedDefault - } - return false -} - -func (x *IsisLspFlags) GetOverload() bool { - if x != nil && x.Overload != nil { - return *x.Overload +func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { + if x != nil { + return x.EthernetNames } - return false + return nil } -// This container describes list of ISIS neighbors and attributes in IS-Reachability -// TLV (type 2). -type IsisLspIsReachabilityTlv struct { +// IPv4 Neighbor state (ARP cache entry). +type Neighborsv4State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes Intermediate System (IS) neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The name of the Ethernet interface associated with the Neighbor state (ARP cache + // entry). + // required = true + EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + // The IPv4 address of the neighbor. + // required = true + Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *IsisLspIsReachabilityTlv) Reset() { - *x = IsisLspIsReachabilityTlv{} +func (x *Neighborsv4State) Reset() { + *x = Neighborsv4State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42745,13 +42915,13 @@ func (x *IsisLspIsReachabilityTlv) Reset() { } } -func (x *IsisLspIsReachabilityTlv) String() string { +func (x *Neighborsv4State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIsReachabilityTlv) ProtoMessage() {} +func (*Neighborsv4State) ProtoMessage() {} -func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42763,31 +42933,52 @@ func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. +func (*Neighborsv4State) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{285} } -func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { +func (x *Neighborsv4State) GetEthernetName() string { if x != nil { - return x.Neighbors + return x.EthernetName } - return nil + return "" } -// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type -// 22). -type IsisLspExtendedIsReachabilityTlv struct { +func (x *Neighborsv4State) GetIpv4Address() string { + if x != nil { + return x.Ipv4Address + } + return "" +} + +func (x *Neighborsv4State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress + } + return "" +} + +// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). +type Neighborsv6StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes IS neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (NDISC cache entries) for all available Ethernet interfaces. + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *IsisLspExtendedIsReachabilityTlv) Reset() { - *x = IsisLspExtendedIsReachabilityTlv{} +func (x *Neighborsv6StatesRequest) Reset() { + *x = Neighborsv6StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42795,13 +42986,13 @@ func (x *IsisLspExtendedIsReachabilityTlv) Reset() { } } -func (x *IsisLspExtendedIsReachabilityTlv) String() string { +func (x *Neighborsv6StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} +func (*Neighborsv6StatesRequest) ProtoMessage() {} -func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42813,30 +43004,37 @@ func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{286} } -func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { +func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { if x != nil { - return x.Neighbors + return x.EthernetNames } return nil } -// This contains IS neighbors. -type IsisLspneighbor struct { +// IPv6 Neighbor state (NDISC cache entry). +type Neighborsv6State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The System ID for this emulated ISIS router, e.g. 640100010000. - SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // The name of the Ethernet interface associated with the Neighbor state (NDISC cache + // entry). + // required = true + EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + // The IPv6 address of the neighbor. + // required = true + Ipv6Address string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3" json:"ipv6_address,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *IsisLspneighbor) Reset() { - *x = IsisLspneighbor{} +func (x *Neighborsv6State) Reset() { + *x = Neighborsv6State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42844,13 +43042,13 @@ func (x *IsisLspneighbor) Reset() { } } -func (x *IsisLspneighbor) String() string { +func (x *Neighborsv6State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspneighbor) ProtoMessage() {} +func (*Neighborsv6State) ProtoMessage() {} -func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { +func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42862,32 +43060,65 @@ func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. -func (*IsisLspneighbor) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. +func (*Neighborsv6State) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{287} } -func (x *IsisLspneighbor) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId +func (x *Neighborsv6State) GetEthernetName() string { + if x != nil { + return x.EthernetName } return "" } -// This container defines list of IPv4 internal reachability information in one IPv4 -// internal reachability TLV. -// This is advertised when the origin-type is set 'internal' in route range configurations. -type IsisLspIpv4InternalReachabilityTlv struct { +func (x *Neighborsv6State) GetIpv6Address() string { + if x != nil { + return x.Ipv6Address + } + return "" +} + +func (x *Neighborsv6State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress + } + return "" +} + +// The request to retrieve BGP peer prefix information. +type BgpPrefixStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Describes list of IPv4 prefixes in this TLV. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The names of BGP peers for which prefix information will be retrieved. If no names + // are specified then the results will contain prefix information for all configured + // BGP peers. + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` + // Specify which prefixes to return. If the list is empty or missing then all prefixes + // will be returned. + PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` + // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will + // be returned. + Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` + // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will + // be returned. + Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` } -func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { - *x = IsisLspIpv4InternalReachabilityTlv{} +func (x *BgpPrefixStateRequest) Reset() { + *x = BgpPrefixStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42895,13 +43126,13 @@ func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { } } -func (x *IsisLspIpv4InternalReachabilityTlv) String() string { +func (x *BgpPrefixStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixStateRequest) ProtoMessage() {} -func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42913,32 +43144,59 @@ func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{288} } -func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { +func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { if x != nil { - return x.Prefixes + return x.BgpPeerNames } return nil } -// This container defines list of IPv4 external reachability information in one IPv4 -// external reachability TLV. -// This is advertised when the origin-type is set 'external' in route range configurations. -type IsisLspIpv4ExternalReachabilityTlv struct { +func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { + if x != nil { + return x.PrefixFilters + } + return nil +} + +func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { + if x != nil { + return x.Ipv4UnicastFilters + } + return nil +} + +func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { + if x != nil { + return x.Ipv6UnicastFilters + } + return nil +} + +// Description missing in models +type BgpPrefixIpv4UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Describes list of IPv4 prefixes in this TLV.. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { - *x = IsisLspIpv4ExternalReachabilityTlv{} +func (x *BgpPrefixIpv4UnicastFilter) Reset() { + *x = BgpPrefixIpv4UnicastFilter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42946,13 +43204,13 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { } } -func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { +func (x *BgpPrefixIpv4UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} -func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42964,46 +43222,59 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{289} } -func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { +func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { if x != nil { - return x.Prefixes + return x.Addresses } return nil } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspV4Prefix struct { +func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength + } + return 0 +} + +func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpPrefixIpv4UnicastFilter_Origin_unspecified +} + +func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId + } + return 0 +} + +// Description missing in models +type BgpPrefixIpv6UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast prefix reachable via the originator of this LSP. - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. + // The addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // ISIS default metric value. - DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` - // The origin of the advertised route-internal or external to the ISIS area. Options - // include the following: - // Internal-for intra-area routes, through Level 1 LSPs. - // External-for inter-area routes redistributed within L1, through Level - // 1 LSPs. - OriginType *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *IsisLspV4Prefix) Reset() { - *x = IsisLspV4Prefix{} +func (x *BgpPrefixIpv6UnicastFilter) Reset() { + *x = BgpPrefixIpv6UnicastFilter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43011,13 +43282,13 @@ func (x *IsisLspV4Prefix) Reset() { } } -func (x *IsisLspV4Prefix) String() string { +func (x *BgpPrefixIpv6UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} -func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43029,60 +43300,55 @@ func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{290} } -func (x *IsisLspV4Prefix) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { + if x != nil { + return x.Addresses } - return "" + return nil } -func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return IsisLspV4Prefix_RedistributionType_unspecified + return BgpPrefixIpv6UnicastFilter_Origin_unspecified } -func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { - if x != nil && x.DefaultMetric != nil { - return *x.DefaultMetric +func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } return 0 } -func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType - } - return IsisLspV4Prefix_OriginType_unspecified -} - -// This container defines list of IPv4 extended reachability information in one Extended -// IPv4 External Reachability TLV. -// It is advertised when the 'wide metric' is enabled. -type IsisLspExtendedIpv4ReachabilityTlv struct { +// BGP peer prefixes. +type BgpPrefixesState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 prefix contained within extended reachability TLVs. - Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The name of a BGP peer. + BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` + // Description missing in models + Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` + // Description missing in models + Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` } -func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { - *x = IsisLspExtendedIpv4ReachabilityTlv{} +func (x *BgpPrefixesState) Reset() { + *x = BgpPrefixesState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43090,13 +43356,13 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { } } -func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { +func (x *BgpPrefixesState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixesState) ProtoMessage() {} -func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43108,42 +43374,64 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. +func (*BgpPrefixesState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{291} } -func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { +func (x *BgpPrefixesState) GetBgpPeerName() string { + if x != nil && x.BgpPeerName != nil { + return *x.BgpPeerName + } + return "" +} + +func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { if x != nil { - return x.Prefixes + return x.Ipv4UnicastPrefixes } return nil } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspExtendedV4Prefix struct { +func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { + if x != nil { + return x.Ipv6UnicastPrefixes + } + return nil +} + +// IPv4 unicast prefix. +type BgpPrefixIpv4UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast prefix reachable via the originator of this LSP. + // An IPv4 unicast address Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. + // The length of the prefix. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *IsisLspExtendedV4Prefix) Reset() { - *x = IsisLspExtendedV4Prefix{} +func (x *BgpPrefixIpv4UnicastState) Reset() { + *x = BgpPrefixIpv4UnicastState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43151,13 +43439,13 @@ func (x *IsisLspExtendedV4Prefix) Reset() { } } -func (x *IsisLspExtendedV4Prefix) String() string { +func (x *BgpPrefixIpv4UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43169,141 +43457,128 @@ func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{292} } -func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { +func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { if x != nil && x.Ipv4Address != nil { return *x.Ipv4Address } return "" } -func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return 0 + return BgpPrefixIpv4UnicastState_Origin_unspecified } -func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } - return IsisLspExtendedV4Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { - if x != nil { - return x.PrefixAttributes +func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop } - return nil -} - -// It defines list of IPv6 extended reachability information in one IPv6 Reachability -// TLV. -type IsisLspIpv6ReachabilityTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // IPv6 prefix contained within reachability TLVs. - Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + return "" } -func (x *IsisLspIpv6ReachabilityTlv) Reset() { - *x = IsisLspIpv6ReachabilityTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[293] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop } + return "" } -func (x *IsisLspIpv6ReachabilityTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} - -func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[293] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{293} +func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 } -func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { - if x != nil { - return x.Prefixes +func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator } - return nil + return 0 } -// It defines attributes of an IPv6 standard prefix. -type IsisLspV6Prefix struct { +// IPv6 unicast prefix. +type BgpPrefixIpv6UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast prefix reachable via the originator of this LSP. + // An IPv6 unicast address Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the IPv6 prefix. + // The length of the prefix. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // The origin of the advertised route-internal or external to the ISIS area. Options - // include the following: - // Internal-for intra-area routes, through Level 1 LSPs. - // External-for inter-area routes redistributed within L1, through Level - // 1 LSPs. - OriginType *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *IsisLspV6Prefix) Reset() { - *x = IsisLspV6Prefix{} +func (x *BgpPrefixIpv6UnicastState) Reset() { + *x = BgpPrefixIpv6UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[294] + mi := &file_otg_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix) String() string { +func (x *BgpPrefixIpv6UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} -func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[294] +func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43314,85 +43589,115 @@ func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294} +// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293} } -func (x *IsisLspV6Prefix) GetIpv6Address() string { +func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { if x != nil && x.Ipv6Address != nil { return *x.Ipv6Address } return "" } -func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspV6Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return 0 + return BgpPrefixIpv6UnicastState_Origin_unspecified } -func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } - return IsisLspV6Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType +func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop } - return IsisLspV6Prefix_OriginType_unspecified + return "" } -func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { +func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop + } + return "" +} + +func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { if x != nil { - return x.PrefixAttributes + return x.Communities } return nil } -// This contains the properties of ISIS Prefix attributes for the extended IPv4 and -// IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html -type IsisLspPrefixAttributes struct { +func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { + if x != nil { + return x.AsPath + } + return nil +} + +func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 +} + +func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator + } + return 0 +} + +// BGP communities provide additional capability for tagging routes and for modifying +// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit +// number which is broken into 16-bit AS number and a 16-bit custom value. +type ResultBgpCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // External Prefix Flag (Bit 0) - XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` - // Re-advertisement Flag (Bit 1) - RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` - // Node Flag (Bit 2) - NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` + // The type of community AS number. If community type is manual_as_number then as_number + // and as_custom will be available. + Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` + // First two octets of 32 bit community AS number. + AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Last two octets of the community value. + AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` } -func (x *IsisLspPrefixAttributes) Reset() { - *x = IsisLspPrefixAttributes{} +func (x *ResultBgpCommunity) Reset() { + *x = ResultBgpCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[295] + mi := &file_otg_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspPrefixAttributes) String() string { +func (x *ResultBgpCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspPrefixAttributes) ProtoMessage() {} +func (*ResultBgpCommunity) ProtoMessage() {} -func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[295] +func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43403,70 +43708,60 @@ func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. -func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{295} +// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{294} } -func (x *IsisLspPrefixAttributes) GetXFlag() bool { - if x != nil && x.XFlag != nil { - return *x.XFlag +func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return false + return ResultBgpCommunity_Type_unspecified } -func (x *IsisLspPrefixAttributes) GetRFlag() bool { - if x != nil && x.RFlag != nil { - return *x.RFlag +func (x *ResultBgpCommunity) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return false + return 0 } -func (x *IsisLspPrefixAttributes) GetNFlag() bool { - if x != nil && x.NFlag != nil { - return *x.NFlag +func (x *ResultBgpCommunity) GetAsCustom() uint32 { + if x != nil && x.AsCustom != nil { + return *x.AsCustom } - return false + return 0 } -// The request to retrieve LLDP neighbor information for a given instance. -type LldpNeighborsStateRequest struct { +// This attribute identifies the autonomous systems through which routing information +// carried in this UPDATE message has passed. +type ResultBgpAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances for which neighbor information will be retrieved. If - // no names are specified then the results will contain neighbor information for all - // configured LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // Specify the neighbors for which information will be returned. If empty or missing - // then information for all neighbors will be returned. - NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` + // AS Path segments present in the received AS Path attribute. + Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *LldpNeighborsStateRequest) Reset() { - *x = LldpNeighborsStateRequest{} +func (x *ResultBgpAsPath) Reset() { + *x = ResultBgpAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[296] + mi := &file_otg_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsStateRequest) String() string { +func (x *ResultBgpAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsStateRequest) ProtoMessage() {} +func (*ResultBgpAsPath) ProtoMessage() {} -func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[296] +func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43477,101 +43772,54 @@ func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. -func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{296} -} - -func (x *LldpNeighborsStateRequest) GetLldpNames() []string { - if x != nil { - return x.LldpNames - } - return nil +// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{295} } -func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { +func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { if x != nil { - return x.NeighborIdFilters + return x.Segments } return nil } -// LLDP neighbor information. -type LldpNeighborsState struct { +// Configuration for a single BGP AS path segment +type ResultBgpAsPathSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the LLDP instance. - LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` - // The system description field shall contain an alpha-numeric string that is the textual - // description of the network entity. The system description should include the full - // name and version identification of the system's hardware type, software operating - // system, and networking software. If implementations support IETF RFC 3418, the sysDescr - // object should be used for this field. - SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the - // endpoint identifier associated with the transmitting LLDP agent. - ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` - // This field identifies the format and source of the chassis identifier string. It - // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. - ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` - // System generated identifier for the neighbor on the LLDP instance. - NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` - // Age since discovery in seconds. - Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` - // Seconds since last update received. - LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` - // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information - // from the neighbor should be considered valid. - Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` - // This field identifies the format and source of the port identifier string. It is - // an enumerator defined by the PtopoPortIdType object from RFC2922. - PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` - // The binary string containing the actual port identifier for the port which this LLDP - // PDU was transmitted. The source and format of this field is defined by PtopoPortId - // from RFC2922. - PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` - // The Management Address is a mandatory TLV which identifies a network address associated - // with the local LLDP agent, which can be used to reach the agent on the port identified - // in the Port ID TLV. - ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` - // The enumerated value for the network address type identified in this TLV. This enumeration - // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers - // object. - ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` - // Description missing in models - CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` - // Description missing in models - Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + // AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting + // with the most recent ASN being added read from left to right. + // The other three AS_PATH types are used for Confederations - AS_SET is the type of + // AS_PATH attribute that summarizes routes using using the aggregate-address command, + // allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives + // the list of ASNs in the path starting with the most recent ASN to be added reading + // left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be + // sent in BGP Updates. + Type *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` } -func (x *LldpNeighborsState) Reset() { - *x = LldpNeighborsState{} +func (x *ResultBgpAsPathSegment) Reset() { + *x = ResultBgpAsPathSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[297] + mi := &file_otg_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState) String() string { +func (x *ResultBgpAsPathSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState) ProtoMessage() {} +func (*ResultBgpAsPathSegment) ProtoMessage() {} -func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[297] +func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43582,144 +43830,95 @@ func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297} -} - -func (x *LldpNeighborsState) GetLldpName() string { - if x != nil && x.LldpName != nil { - return *x.LldpName - } - return "" -} - -func (x *LldpNeighborsState) GetSystemName() string { - if x != nil && x.SystemName != nil { - return *x.SystemName - } - return "" -} - -func (x *LldpNeighborsState) GetSystemDescription() string { - if x != nil && x.SystemDescription != nil { - return *x.SystemDescription - } - return "" -} - -func (x *LldpNeighborsState) GetChassisId() string { - if x != nil && x.ChassisId != nil { - return *x.ChassisId - } - return "" -} - -func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { - if x != nil && x.ChassisIdType != nil { - return *x.ChassisIdType - } - return LldpNeighborsState_ChassisIdType_unspecified -} - -func (x *LldpNeighborsState) GetNeighborId() string { - if x != nil && x.NeighborId != nil { - return *x.NeighborId - } - return "" +// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{296} } -func (x *LldpNeighborsState) GetAge() uint32 { - if x != nil && x.Age != nil { - return *x.Age +func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return ResultBgpAsPathSegment_Type_unspecified } -func (x *LldpNeighborsState) GetLastUpdate() uint32 { - if x != nil && x.LastUpdate != nil { - return *x.LastUpdate +func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { + if x != nil { + return x.AsNumbers } - return 0 + return nil } -func (x *LldpNeighborsState) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl - } - return 0 -} +// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. +type IsisLspsStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *LldpNeighborsState) GetPortId() string { - if x != nil && x.PortId != nil { - return *x.PortId - } - return "" + // The names of ISIS routers for which learned information is requested. An empty list + // will return results for all ISIS routers. + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` } -func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { - if x != nil && x.PortIdType != nil { - return *x.PortIdType +func (x *IsisLspsStateRequest) Reset() { + *x = IsisLspsStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[297] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return LldpNeighborsState_PortIdType_unspecified } -func (x *LldpNeighborsState) GetPortDescription() string { - if x != nil && x.PortDescription != nil { - return *x.PortDescription - } - return "" +func (x *IsisLspsStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LldpNeighborsState) GetManagementAddress() string { - if x != nil && x.ManagementAddress != nil { - return *x.ManagementAddress - } - return "" -} +func (*IsisLspsStateRequest) ProtoMessage() {} -func (x *LldpNeighborsState) GetManagementAddressType() string { - if x != nil && x.ManagementAddressType != nil { - return *x.ManagementAddressType +func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[297] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { - if x != nil { - return x.CustomTlvs - } - return nil +// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. +func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{297} } -func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { +func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { if x != nil { - return x.Capabilities + return x.IsisRouterNames } return nil } -// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised -// with TLV type 127. -type LldpCustomTLVState struct { +// The result of ISIS LSP information that are retrieved. +type IsisLspsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The integer value identifying the type of information contained in the value field. - CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` - // The organizationally unique identifier field shall contain the organization's OUI - // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order - // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in - // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. - Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` - // The organizationally defined subtype field shall contain a unique subtype value assigned - // by the defining organization. - OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` + // The name of the ISIS Router. + IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` + // One or more LSPs that are learned by this ISIS router. + Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` } -func (x *LldpCustomTLVState) Reset() { - *x = LldpCustomTLVState{} +func (x *IsisLspsState) Reset() { + *x = IsisLspsState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43727,13 +43926,13 @@ func (x *LldpCustomTLVState) Reset() { } } -func (x *LldpCustomTLVState) String() string { +func (x *IsisLspsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCustomTLVState) ProtoMessage() {} +func (*IsisLspsState) ProtoMessage() {} -func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { +func (x *IsisLspsState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43745,48 +43944,61 @@ func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. -func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. +func (*IsisLspsState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{298} } -func (x *LldpCustomTLVState) GetCustomType() uint32 { - if x != nil && x.CustomType != nil { - return *x.CustomType - } - return 0 -} - -func (x *LldpCustomTLVState) GetOui() string { - if x != nil && x.Oui != nil { - return *x.Oui +func (x *IsisLspsState) GetIsisRouterName() string { + if x != nil && x.IsisRouterName != nil { + return *x.IsisRouterName } return "" } -func (x *LldpCustomTLVState) GetOuiSubtype() string { - if x != nil && x.OuiSubtype != nil { - return *x.OuiSubtype +func (x *IsisLspsState) GetLsps() []*IsisLspState { + if x != nil { + return x.Lsps } - return "" + return nil } -// LLDP system capability advertised by the neighbor -type LldpCapabilityState struct { +// ISIS LSP. +type IsisLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of the system capability advertised by the neighbor. Capabilities are represented - // in a bitmap that defines the primary functions of the system. The capabilities are - // defined in IEEE 802.1AB. - CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` - // Indicates whether the corresponding system capability is enabled on the neighbor. - CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` + // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID + // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent + // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation + // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN + // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with + // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. + // Then the sequence number is incremented by 1. + // required = true + LspId string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` + // Link State PDU type. + PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` + // Remaining lifetime in seconds before LSP expires. + RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` + // Sequence number of the LSP. + SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Total length of the LSP. + PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` + // LSP Type-Block flags. + Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // IS Type - bits 1 and 2 indicate the type of Intermediate System. + // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. + // 2 - Unused value. + // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. + IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` + // It refers to Link State PDU State TLVs container. + Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3,oneof" json:"tlvs,omitempty"` } -func (x *LldpCapabilityState) Reset() { - *x = LldpCapabilityState{} +func (x *IsisLspState) Reset() { + *x = IsisLspState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43794,13 +44006,13 @@ func (x *LldpCapabilityState) Reset() { } } -func (x *LldpCapabilityState) String() string { +func (x *IsisLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState) ProtoMessage() {} +func (*IsisLspState) ProtoMessage() {} -func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { +func (x *IsisLspState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43812,45 +44024,91 @@ func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. +func (*IsisLspState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{299} } -func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { - if x != nil && x.CapabilityName != nil { - return *x.CapabilityName +func (x *IsisLspState) GetLspId() string { + if x != nil { + return x.LspId } - return LldpCapabilityState_CapabilityName_unspecified + return "" } -func (x *LldpCapabilityState) GetCapabilityEnabled() bool { - if x != nil && x.CapabilityEnabled != nil { - return *x.CapabilityEnabled +func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { + if x != nil && x.PduType != nil { + return *x.PduType } - return false + return IsisLspState_PduType_unspecified } -// The request to retrieve RSVP Label Switched Path (LSP) information learned by the -// router. -type RsvpLspsStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *IsisLspState) GetRemainingLifetime() uint32 { + if x != nil && x.RemainingLifetime != nil { + return *x.RemainingLifetime + } + return 0 +} - // The names of RSVP-TE routers for which learned information is requested. An empty - // list will return results for all RSVP=TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` +func (x *IsisLspState) GetSequenceNumber() uint64 { + if x != nil && x.SequenceNumber != nil { + return *x.SequenceNumber + } + return 0 } -func (x *RsvpLspsStateRequest) Reset() { - *x = RsvpLspsStateRequest{} +func (x *IsisLspState) GetPduLength() uint32 { + if x != nil && x.PduLength != nil { + return *x.PduLength + } + return 0 +} + +func (x *IsisLspState) GetFlags() *IsisLspFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *IsisLspState) GetIsType() uint32 { + if x != nil && x.IsType != nil { + return *x.IsType + } + return 0 +} + +func (x *IsisLspState) GetTlvs() *IsisLspTlvs { + if x != nil { + return x.Tlvs + } + return nil +} + +// This contains the list of TLVs present in one LSP. +type IsisLspTlvs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array of Hostname TLVs ( type 137) present in this LSP. + HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` + // Array of IS-Reachability TLVs (type 2) present in this LSP. + IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` + // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. + ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` + // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. + Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` + // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. + Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` + // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. + ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` + // Array of IPv6 Reachability TLVs (type 236) present in this LSP. + Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` +} + +func (x *IsisLspTlvs) Reset() { + *x = IsisLspTlvs{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43858,13 +44116,13 @@ func (x *RsvpLspsStateRequest) Reset() { } } -func (x *RsvpLspsStateRequest) String() string { +func (x *IsisLspTlvs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspsStateRequest) ProtoMessage() {} +func (*IsisLspTlvs) ProtoMessage() {} -func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { +func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43876,32 +44134,72 @@ func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. -func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. +func (*IsisLspTlvs) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{300} } -func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { +func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { if x != nil { - return x.RsvpRouterNames + return x.HostnameTlvs } return nil } -// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. -type RsvpLspsState struct { +func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { + if x != nil { + return x.IsReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { + if x != nil { + return x.ExtendedIsReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { + if x != nil { + return x.Ipv4InternalReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { + if x != nil { + return x.Ipv4ExternalReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { + if x != nil { + return x.ExtendedIpv4ReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { + if x != nil { + return x.Ipv6ReachabilityTlvs + } + return nil +} + +// It contains Hostname for the TLV 137. +type IsisLspHostname struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the RSVP-TE Router. - RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` - // IPv4 Point-to-Point RSVP-TE Discovered LSPs. - Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` + // Hostname for an ISIS router. + Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` } -func (x *RsvpLspsState) Reset() { - *x = RsvpLspsState{} +func (x *IsisLspHostname) Reset() { + *x = IsisLspHostname{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43909,13 +44207,13 @@ func (x *RsvpLspsState) Reset() { } } -func (x *RsvpLspsState) String() string { +func (x *IsisLspHostname) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspsState) ProtoMessage() {} +func (*IsisLspHostname) ProtoMessage() {} -func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { +func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43927,45 +44225,44 @@ func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. -func (*RsvpLspsState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. +func (*IsisLspHostname) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{301} } -func (x *RsvpLspsState) GetRsvpRouterName() string { - if x != nil && x.RsvpRouterName != nil { - return *x.RsvpRouterName +func (x *IsisLspHostname) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname } return "" } -func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { - if x != nil { - return x.Ipv4Lsps - } - return nil -} - -// IPv4 RSVP-TE Discovered LSPs. -type RsvpIPv4LspState struct { +// LSP Type flags. +type IsisLspFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The origin IPv4 address of RSVP session. - SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` - // The IPv4 destination address of RSVP session. - DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` - // It refers to the RSVP LSP properties. - Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3,oneof" json:"lsp,omitempty"` - // It refers to RSVP RRO objects container. - Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` - // It refers to RSVP ERO objects container. - Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` + // When set, the originator supports partition repair. + PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` + // When set, the originator is attached to another area using the referred metric. + AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` + // When set, the originator is attached to another + // area using the referred metric. + AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` + // Delay Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` + // Default Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` + // Overload bit - when set, the originator is overloaded, and must + // be avoided in path calculation. + Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` } -func (x *RsvpIPv4LspState) Reset() { - *x = RsvpIPv4LspState{} +func (x *IsisLspFlags) Reset() { + *x = IsisLspFlags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43973,13 +44270,13 @@ func (x *RsvpIPv4LspState) Reset() { } } -func (x *RsvpIPv4LspState) String() string { +func (x *IsisLspFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIPv4LspState) ProtoMessage() {} +func (*IsisLspFlags) ProtoMessage() {} -func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { +func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43991,75 +44288,66 @@ func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. -func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. +func (*IsisLspFlags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{302} } -func (x *RsvpIPv4LspState) GetSourceAddress() string { - if x != nil && x.SourceAddress != nil { - return *x.SourceAddress +func (x *IsisLspFlags) GetPartitionRepair() bool { + if x != nil && x.PartitionRepair != nil { + return *x.PartitionRepair } - return "" + return false } -func (x *RsvpIPv4LspState) GetDestinationAddress() string { - if x != nil && x.DestinationAddress != nil { - return *x.DestinationAddress +func (x *IsisLspFlags) GetAttachedError() bool { + if x != nil && x.AttachedError != nil { + return *x.AttachedError } - return "" + return false } -func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { - if x != nil { - return x.Lsp +func (x *IsisLspFlags) GetAttachedExpense() bool { + if x != nil && x.AttachedExpense != nil { + return *x.AttachedExpense } - return nil + return false } -func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { - if x != nil { - return x.Rros +func (x *IsisLspFlags) GetAttachedDelay() bool { + if x != nil && x.AttachedDelay != nil { + return *x.AttachedDelay } - return nil + return false } -func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { - if x != nil { - return x.Eros +func (x *IsisLspFlags) GetAttachedDefault() bool { + if x != nil && x.AttachedDefault != nil { + return *x.AttachedDefault } - return nil + return false } -// IPv4 RSVP-TE Discovered LSPs. -type RsvpLspState struct { +func (x *IsisLspFlags) GetOverload() bool { + if x != nil && x.Overload != nil { + return *x.Overload + } + return false +} + +// This container describes list of ISIS neighbors and attributes in IS-Reachability +// TLV (type 2). +type IsisLspIsReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The tunnel id of RSVP session which acts as an identifier that remains constant over - // the life of the tunnel. - TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The lsp-id of RSVP session which acts as a differentiator for two lsps originating - // from the same headend, commonly used to distinguish RSVP sessions during make before - // break operations. - LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The value of RSVP-TE Session Name field of the Session Attribute object. - SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // The label received by RSVP-TE ingress. - LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` - // The label assigned by RSVP-TE egress. - LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` - // Operational state of the RSVP LSP. - SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` - // The reason for the last flap of this RSVP session. - LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` - // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. - UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` + // This container describes Intermediate System (IS) neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *RsvpLspState) Reset() { - *x = RsvpLspState{} +func (x *IsisLspIsReachabilityTlv) Reset() { + *x = IsisLspIsReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44067,13 +44355,13 @@ func (x *RsvpLspState) Reset() { } } -func (x *RsvpLspState) String() string { +func (x *IsisLspIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState) ProtoMessage() {} +func (*IsisLspIsReachabilityTlv) ProtoMessage() {} -func (x *RsvpLspState) ProtoReflect() protoreflect.Message { +func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44085,89 +44373,31 @@ func (x *RsvpLspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. -func (*RsvpLspState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{303} } -func (x *RsvpLspState) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspState) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspState) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName - } - return "" -} - -func (x *RsvpLspState) GetLabelIn() uint32 { - if x != nil && x.LabelIn != nil { - return *x.LabelIn - } - return 0 -} - -func (x *RsvpLspState) GetLabelOut() uint32 { - if x != nil && x.LabelOut != nil { - return *x.LabelOut - } - return 0 -} - -func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { - if x != nil && x.SessionStatus != nil { - return *x.SessionStatus - } - return RsvpLspState_SessionStatus_unspecified -} - -func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { - if x != nil && x.LastFlapReason != nil { - return *x.LastFlapReason - } - return RsvpLspState_LastFlapReason_unspecified -} - -func (x *RsvpLspState) GetUpTime() uint64 { - if x != nil && x.UpTime != nil { - return *x.UpTime +func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { + if x != nil { + return x.Neighbors } - return 0 + return nil } -// This contains the list of Record Route Object(RRO) objects associated with the traffic -// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the -// route traversed by the LSP. The RRO might be present in both Path message and Resv -// message, the RRO stores the IP addresses of the routers that the traffic engineering -// tunnel traversed and also the label generated and distributed by the routers. The -// RROs in the Resv message mirrors that of the Path message, the only difference is -// that the RRO in a Resv message records the path information in the reverse direction. -type RsvpLspIpv4Rro struct { +// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type +// 22). +type IsisLspExtendedIsReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute - // object, nodes doing route recording should include the Label Record subobject containing - // the reported label. - ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` + // This container describes IS neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *RsvpLspIpv4Rro) Reset() { - *x = RsvpLspIpv4Rro{} +func (x *IsisLspExtendedIsReachabilityTlv) Reset() { + *x = IsisLspExtendedIsReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44175,13 +44405,13 @@ func (x *RsvpLspIpv4Rro) Reset() { } } -func (x *RsvpLspIpv4Rro) String() string { +func (x *IsisLspExtendedIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Rro) ProtoMessage() {} +func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} -func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44193,45 +44423,30 @@ func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{304} } -func (x *RsvpLspIpv4Rro) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address - } - return "" -} - -func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { - if x != nil && x.ReportedLabel != nil { - return *x.ReportedLabel +func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { + if x != nil { + return x.Neighbors } - return 0 + return nil } -// This contains the list of sub-objects included in the Explicit Route Object(ERO) -// object send in the PATH message from the ingress. These sub-objects contain the intermediate -// hops to be traversed by the LSP while being forwarded towards the egress endpoint. -type RsvpLspIpv4Ero struct { +// This contains IS neighbors. +type IsisLspneighbor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 - // prefix. - Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The autonomous system number indicated by the ERO. Specified only when the ERO hop - // is an 2 or 4-byte AS number. - Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` - // The type indicated by the ERO. - Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` + // The System ID for this emulated ISIS router, e.g. 640100010000. + SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` } -func (x *RsvpLspIpv4Ero) Reset() { - *x = RsvpLspIpv4Ero{} +func (x *IsisLspneighbor) Reset() { + *x = IsisLspneighbor{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44239,13 +44454,13 @@ func (x *RsvpLspIpv4Ero) Reset() { } } -func (x *RsvpLspIpv4Ero) String() string { +func (x *IsisLspneighbor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero) ProtoMessage() {} +func (*IsisLspneighbor) ProtoMessage() {} -func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { +func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44257,53 +44472,32 @@ func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. +func (*IsisLspneighbor) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{305} } -func (x *RsvpLspIpv4Ero) GetPrefix() string { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *IsisLspneighbor) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } -func (x *RsvpLspIpv4Ero) GetAsn() uint32 { - if x != nil && x.Asn != nil { - return *x.Asn - } - return 0 -} - -func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return RsvpLspIpv4Ero_Type_unspecified -} - -// The capture result request to the traffic generator. Stops the port capture on the -// port_name and returns the capture. -type CaptureRequest struct { +// This container defines list of IPv4 internal reachability information in one IPv4 +// internal reachability TLV. +// This is advertised when the origin-type is set 'internal' in route range configurations. +type IsisLspIpv4InternalReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a port a capture is started on. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // required = true - PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` + // Describes list of IPv4 prefixes in this TLV. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *CaptureRequest) Reset() { - *x = CaptureRequest{} +func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { + *x = IsisLspIpv4InternalReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44311,13 +44505,13 @@ func (x *CaptureRequest) Reset() { } } -func (x *CaptureRequest) String() string { +func (x *IsisLspIpv4InternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureRequest) ProtoMessage() {} +func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} -func (x *CaptureRequest) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44329,37 +44523,32 @@ func (x *CaptureRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. -func (*CaptureRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{306} } -func (x *CaptureRequest) GetPortName() string { +func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { if x != nil { - return x.PortName + return x.Prefixes } - return "" + return nil } -// mac counter pattern -type PatternFlowEthernetDstCounter struct { +// This container defines list of IPv4 external reachability information in one IPv4 +// external reachability TLV. +// This is advertised when the origin-type is set 'external' in route range configurations. +type IsisLspIpv4ExternalReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // Describes list of IPv4 prefixes in this TLV.. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetDstCounter) Reset() { - *x = PatternFlowEthernetDstCounter{} +func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { + *x = IsisLspIpv4ExternalReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44367,13 +44556,13 @@ func (x *PatternFlowEthernetDstCounter) Reset() { } } -func (x *PatternFlowEthernetDstCounter) String() string { +func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstCounter) ProtoMessage() {} +func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44385,55 +44574,46 @@ func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{307} } -func (x *PatternFlowEthernetDstCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start - } - return "" -} - -func (x *PatternFlowEthernetDstCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step - } - return "" -} - -func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { + if x != nil { + return x.Prefixes } - return 0 + return nil } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetDstMetricTag struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // ISIS default metric value. + DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` + // The origin of the advertised route-internal or external to the ISIS area. Options + // include the following: + // Internal-for intra-area routes, through Level 1 LSPs. + // External-for inter-area routes redistributed within L1, through Level + // 1 LSPs. + OriginType *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` } -func (x *PatternFlowEthernetDstMetricTag) Reset() { - *x = PatternFlowEthernetDstMetricTag{} +func (x *IsisLspV4Prefix) Reset() { + *x = IsisLspV4Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44441,13 +44621,13 @@ func (x *PatternFlowEthernetDstMetricTag) Reset() { } } -func (x *PatternFlowEthernetDstMetricTag) String() string { +func (x *IsisLspV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} +func (*IsisLspV4Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44459,64 +44639,60 @@ func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{308} } -func (x *PatternFlowEthernetDstMetricTag) GetName() string { - if x != nil { - return x.Name +func (x *IsisLspV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { + if x != nil && x.DefaultMetric != nil { + return *x.DefaultMetric } return 0 } -// Destination MAC address -type PatternFlowEthernetDst struct { +func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType + } + return IsisLspV4Prefix_OriginType_unspecified +} + +// This container defines list of IPv4 extended reachability information in one Extended +// IPv4 External Reachability TLV. +// It is advertised when the 'wide metric' is enabled. +type IsisLspExtendedIpv4ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 00:00:00:00:00:00 - Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // IPv4 prefix contained within extended reachability TLVs. + Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetDst) Reset() { - *x = PatternFlowEthernetDst{} +func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { + *x = IsisLspExtendedIpv4ReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44524,13 +44700,13 @@ func (x *PatternFlowEthernetDst) Reset() { } } -func (x *PatternFlowEthernetDst) String() string { +func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst) ProtoMessage() {} +func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44542,79 +44718,42 @@ func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{309} } -func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowEthernetDst_Choice_unspecified -} - -func (x *PatternFlowEthernetDst) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -func (x *PatternFlowEthernetDst) GetValues() []string { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowEthernetDst) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto - } - return "" -} - -func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { +func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { if x != nil { - return x.MetricTags + return x.Prefixes } return nil } -// mac counter pattern -type PatternFlowEthernetSrcCounter struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspExtendedV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowEthernetSrcCounter) Reset() { - *x = PatternFlowEthernetSrcCounter{} +func (x *IsisLspExtendedV4Prefix) Reset() { + *x = IsisLspExtendedV4Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44622,13 +44761,13 @@ func (x *PatternFlowEthernetSrcCounter) Reset() { } } -func (x *PatternFlowEthernetSrcCounter) String() string { +func (x *IsisLspExtendedV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44640,55 +44779,59 @@ func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{310} } -func (x *PatternFlowEthernetSrcCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *PatternFlowEthernetSrcCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } return 0 } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetSrcMetricTag struct { +func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspExtendedV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { + if x != nil { + return x.PrefixAttributes + } + return nil +} + +// It defines list of IPv6 extended reachability information in one IPv6 Reachability +// TLV. +type IsisLspIpv6ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // IPv6 prefix contained within reachability TLVs. + Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetSrcMetricTag) Reset() { - *x = PatternFlowEthernetSrcMetricTag{} +func (x *IsisLspIpv6ReachabilityTlv) Reset() { + *x = IsisLspIpv6ReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44696,13 +44839,13 @@ func (x *PatternFlowEthernetSrcMetricTag) Reset() { } } -func (x *PatternFlowEthernetSrcMetricTag) String() string { +func (x *IsisLspIpv6ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} +func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44714,59 +44857,48 @@ func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{311} } -func (x *PatternFlowEthernetSrcMetricTag) GetName() string { +func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length + return x.Prefixes } - return 0 + return nil } -// Source MAC address -type PatternFlowEthernetSrc struct { +// It defines attributes of an IPv6 standard prefix. +type IsisLspV6Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv6 unicast prefix reachable via the originator of this LSP. + Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The length of the IPv6 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // The origin of the advertised route-internal or external to the ISIS area. Options + // include the following: + // Internal-for intra-area routes, through Level 1 LSPs. + // External-for inter-area routes redistributed within L1, through Level + // 1 LSPs. + OriginType *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowEthernetSrc) Reset() { - *x = PatternFlowEthernetSrc{} +func (x *IsisLspV6Prefix) Reset() { + *x = IsisLspV6Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44774,13 +44906,13 @@ func (x *PatternFlowEthernetSrc) Reset() { } } -func (x *PatternFlowEthernetSrc) String() string { +func (x *IsisLspV6Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc) ProtoMessage() {} +func (*IsisLspV6Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { +func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44792,72 +44924,70 @@ func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{312} } -func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisLspV6Prefix) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return PatternFlowEthernetSrc_Choice_unspecified + return "" } -func (x *PatternFlowEthernetSrc) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetSrc) GetValues() []string { - if x != nil { - return x.Values +func (x *IsisLspV6Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } - return nil + return 0 } -func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { - if x != nil { - return x.Increment +func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType } - return nil + return IsisLspV6Prefix_RedistributionType_unspecified } -func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { - if x != nil { - return x.Decrement +func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType } - return nil + return IsisLspV6Prefix_OriginType_unspecified } -func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { +func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { if x != nil { - return x.MetricTags + return x.PrefixAttributes } return nil } -// integer counter pattern -type PatternFlowEthernetEtherTypeCounter struct { +// This contains the properties of ISIS Prefix attributes for the extended IPv4 and +// IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html +type IsisLspPrefixAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 65535 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // External Prefix Flag (Bit 0) + XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` + // Re-advertisement Flag (Bit 1) + RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` + // Node Flag (Bit 2) + NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` } -func (x *PatternFlowEthernetEtherTypeCounter) Reset() { - *x = PatternFlowEthernetEtherTypeCounter{} +func (x *IsisLspPrefixAttributes) Reset() { + *x = IsisLspPrefixAttributes{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44865,13 +44995,13 @@ func (x *PatternFlowEthernetEtherTypeCounter) Reset() { } } -func (x *PatternFlowEthernetEtherTypeCounter) String() string { +func (x *IsisLspPrefixAttributes) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} +func (*IsisLspPrefixAttributes) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44883,55 +45013,55 @@ func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. +func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{313} } -func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspPrefixAttributes) GetXFlag() bool { + if x != nil && x.XFlag != nil { + return *x.XFlag } - return 0 + return false } -func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspPrefixAttributes) GetRFlag() bool { + if x != nil && x.RFlag != nil { + return *x.RFlag } - return 0 + return false } -func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspPrefixAttributes) GetNFlag() bool { + if x != nil && x.NFlag != nil { + return *x.NFlag } - return 0 + return false } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetEtherTypeMetricTag struct { +// The request to retrieve LLDP neighbor information for a given instance. +type LldpNeighborsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The names of LLDP instances for which neighbor information will be retrieved. If + // no names are specified then the results will contain neighbor information for all + // configured LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // Specify the neighbors for which information will be returned. If empty or missing + // then information for all neighbors will be returned. + NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` } -func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetEtherTypeMetricTag{} +func (x *LldpNeighborsStateRequest) Reset() { + *x = LldpNeighborsStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44939,13 +45069,13 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { +func (x *LldpNeighborsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} +func (*LldpNeighborsStateRequest) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44957,64 +45087,86 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. +func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{314} } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { +func (x *LldpNeighborsStateRequest) GetLldpNames() []string { if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset + return x.LldpNames } - return 0 + return nil } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { + if x != nil { + return x.NeighborIdFilters } - return 0 + return nil } -// Ethernet type -type PatternFlowEthernetEtherType struct { +// LLDP neighbor information. +type LldpNeighborsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The name of the LLDP instance. + LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + // The system description field shall contain an alpha-numeric string that is the textual + // description of the network entity. The system description should include the full + // name and version identification of the system's hardware type, software operating + // system, and networking software. If implementations support IETF RFC 3418, the sysDescr + // object should be used for this field. + SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the + // endpoint identifier associated with the transmitting LLDP agent. + ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + // This field identifies the format and source of the chassis identifier string. It + // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. + ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` + // System generated identifier for the neighbor on the LLDP instance. + NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` + // Age since discovery in seconds. + Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` + // Seconds since last update received. + LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` + // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information + // from the neighbor should be considered valid. + Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + // This field identifies the format and source of the port identifier string. It is + // an enumerator defined by the PtopoPortIdType object from RFC2922. + PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` + // The binary string containing the actual port identifier for the port which this LLDP + // PDU was transmitted. The source and format of this field is defined by PtopoPortId + // from RFC2922. + PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` + // The Management Address is a mandatory TLV which identifies a network address associated + // with the local LLDP agent, which can be used to reach the agent on the port identified + // in the Port ID TLV. + ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` + // The enumerated value for the network address type identified in this TLV. This enumeration + // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers + // object. + ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 65535 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [65535] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 65535 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` } -func (x *PatternFlowEthernetEtherType) Reset() { - *x = PatternFlowEthernetEtherType{} +func (x *LldpNeighborsState) Reset() { + *x = LldpNeighborsState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45022,13 +45174,13 @@ func (x *PatternFlowEthernetEtherType) Reset() { } } -func (x *PatternFlowEthernetEtherType) String() string { +func (x *LldpNeighborsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType) ProtoMessage() {} +func (*LldpNeighborsState) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45040,79 +45192,144 @@ func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{315} } -func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *LldpNeighborsState) GetLldpName() string { + if x != nil && x.LldpName != nil { + return *x.LldpName } - return PatternFlowEthernetEtherType_Choice_unspecified + return "" } -func (x *PatternFlowEthernetEtherType) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *LldpNeighborsState) GetSystemName() string { + if x != nil && x.SystemName != nil { + return *x.SystemName + } + return "" +} + +func (x *LldpNeighborsState) GetSystemDescription() string { + if x != nil && x.SystemDescription != nil { + return *x.SystemDescription + } + return "" +} + +func (x *LldpNeighborsState) GetChassisId() string { + if x != nil && x.ChassisId != nil { + return *x.ChassisId + } + return "" +} + +func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { + if x != nil && x.ChassisIdType != nil { + return *x.ChassisIdType + } + return LldpNeighborsState_ChassisIdType_unspecified +} + +func (x *LldpNeighborsState) GetNeighborId() string { + if x != nil && x.NeighborId != nil { + return *x.NeighborId + } + return "" +} + +func (x *LldpNeighborsState) GetAge() uint32 { + if x != nil && x.Age != nil { + return *x.Age } return 0 } -func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *LldpNeighborsState) GetLastUpdate() uint32 { + if x != nil && x.LastUpdate != nil { + return *x.LastUpdate } - return nil + return 0 } -func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *LldpNeighborsState) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { - if x != nil { - return x.Increment +func (x *LldpNeighborsState) GetPortId() string { + if x != nil && x.PortId != nil { + return *x.PortId } - return nil + return "" } -func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { +func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { + if x != nil && x.PortIdType != nil { + return *x.PortIdType + } + return LldpNeighborsState_PortIdType_unspecified +} + +func (x *LldpNeighborsState) GetPortDescription() string { + if x != nil && x.PortDescription != nil { + return *x.PortDescription + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddress() string { + if x != nil && x.ManagementAddress != nil { + return *x.ManagementAddress + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddressType() string { + if x != nil && x.ManagementAddressType != nil { + return *x.ManagementAddressType + } + return "" +} + +func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { if x != nil { - return x.Decrement + return x.CustomTlvs } return nil } -func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { +func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { if x != nil { - return x.MetricTags + return x.Capabilities } return nil } -// integer counter pattern -type PatternFlowEthernetPfcQueueCounter struct { +// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised +// with TLV type 127. +type LldpCustomTLVState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The integer value identifying the type of information contained in the value field. + CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` + // The organizationally unique identifier field shall contain the organization's OUI + // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order + // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in + // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. + Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` + // The organizationally defined subtype field shall contain a unique subtype value assigned + // by the defining organization. + OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` } -func (x *PatternFlowEthernetPfcQueueCounter) Reset() { - *x = PatternFlowEthernetPfcQueueCounter{} +func (x *LldpCustomTLVState) Reset() { + *x = LldpCustomTLVState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45120,13 +45337,13 @@ func (x *PatternFlowEthernetPfcQueueCounter) Reset() { } } -func (x *PatternFlowEthernetPfcQueueCounter) String() string { +func (x *LldpCustomTLVState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} +func (*LldpCustomTLVState) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { +func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45138,55 +45355,48 @@ func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. +func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{316} } -func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *LldpCustomTLVState) GetCustomType() uint32 { + if x != nil && x.CustomType != nil { + return *x.CustomType } return 0 } -func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *LldpCustomTLVState) GetOui() string { + if x != nil && x.Oui != nil { + return *x.Oui } - return 0 + return "" } -func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *LldpCustomTLVState) GetOuiSubtype() string { + if x != nil && x.OuiSubtype != nil { + return *x.OuiSubtype } - return 0 + return "" } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetPfcQueueMetricTag struct { +// LLDP system capability advertised by the neighbor +type LldpCapabilityState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Name of the system capability advertised by the neighbor. Capabilities are represented + // in a bitmap that defines the primary functions of the system. The capabilities are + // defined in IEEE 802.1AB. + CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` + // Indicates whether the corresponding system capability is enabled on the neighbor. + CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` } -func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { - *x = PatternFlowEthernetPfcQueueMetricTag{} +func (x *LldpCapabilityState) Reset() { + *x = LldpCapabilityState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45194,13 +45404,13 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { } } -func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { +func (x *LldpCapabilityState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} +func (*LldpCapabilityState) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { +func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45212,59 +45422,45 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{317} } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { + if x != nil && x.CapabilityName != nil { + return *x.CapabilityName } - return 0 + return LldpCapabilityState_CapabilityName_unspecified } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpCapabilityState) GetCapabilityEnabled() bool { + if x != nil && x.CapabilityEnabled != nil { + return *x.CapabilityEnabled } - return 0 + return false } -// Priority flow control queue -type PatternFlowEthernetPfcQueue struct { +// The request to retrieve RSVP Label Switched Path (LSP) information learned by the +// router. +type RsvpLspsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The names of RSVP-TE routers for which learned information is requested. An empty + // list will return results for all RSVP=TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` } -func (x *PatternFlowEthernetPfcQueue) Reset() { - *x = PatternFlowEthernetPfcQueue{} +func (x *RsvpLspsStateRequest) Reset() { + *x = RsvpLspsStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45272,13 +45468,13 @@ func (x *PatternFlowEthernetPfcQueue) Reset() { } } -func (x *PatternFlowEthernetPfcQueue) String() string { +func (x *RsvpLspsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} +func (*RsvpLspsStateRequest) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { +func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45290,87 +45486,111 @@ func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. +func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{318} } -func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { + if x != nil { + return x.RsvpRouterNames } - return PatternFlowEthernetPfcQueue_Choice_unspecified + return nil } -func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 +// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. +type RsvpLspsState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the RSVP-TE Router. + RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` + // IPv4 Point-to-Point RSVP-TE Discovered LSPs. + Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` } -func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *RsvpLspsState) Reset() { + *x = RsvpLspsState{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[319] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { - if x != nil { - return x.Increment +func (x *RsvpLspsState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RsvpLspsState) ProtoMessage() {} + +func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[319] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { - if x != nil { - return x.Decrement +// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. +func (*RsvpLspsState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{319} +} + +func (x *RsvpLspsState) GetRsvpRouterName() string { + if x != nil && x.RsvpRouterName != nil { + return *x.RsvpRouterName } - return nil + return "" } -func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { +func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { if x != nil { - return x.MetricTags + return x.Ipv4Lsps } return nil } -// integer counter pattern -type PatternFlowVlanPriorityCounter struct { +// IPv4 RSVP-TE Discovered LSPs. +type RsvpIPv4LspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The origin IPv4 address of RSVP session. + SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` + // The IPv4 destination address of RSVP session. + DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` + // It refers to the RSVP LSP properties. + Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3,oneof" json:"lsp,omitempty"` + // It refers to RSVP RRO objects container. + Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` + // It refers to RSVP ERO objects container. + Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` } -func (x *PatternFlowVlanPriorityCounter) Reset() { - *x = PatternFlowVlanPriorityCounter{} +func (x *RsvpIPv4LspState) Reset() { + *x = RsvpIPv4LspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[319] + mi := &file_otg_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriorityCounter) String() string { +func (x *RsvpIPv4LspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} +func (*RsvpIPv4LspState) ProtoMessage() {} -func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[319] +func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45381,133 +45601,75 @@ func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319} +// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. +func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{320} } -func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *RsvpIPv4LspState) GetSourceAddress() string { + if x != nil && x.SourceAddress != nil { + return *x.SourceAddress } - return 0 + return "" } -func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 -} - -func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowVlanPriorityMetricTag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` -} - -func (x *PatternFlowVlanPriorityMetricTag) Reset() { - *x = PatternFlowVlanPriorityMetricTag{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[320] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowVlanPriorityMetricTag) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} - -func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[320] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpIPv4LspState) GetDestinationAddress() string { + if x != nil && x.DestinationAddress != nil { + return *x.DestinationAddress } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{320} + return "" } -func (x *PatternFlowVlanPriorityMetricTag) GetName() string { +func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { if x != nil { - return x.Name + return x.Lsp } - return "" + return nil } -func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { + if x != nil { + return x.Rros } - return 0 + return nil } -func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { + if x != nil { + return x.Eros } - return 0 + return nil } -// Priority code point -type PatternFlowVlanPriority struct { +// IPv4 RSVP-TE Discovered LSPs. +type RsvpLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The tunnel id of RSVP session which acts as an identifier that remains constant over + // the life of the tunnel. + TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The lsp-id of RSVP session which acts as a differentiator for two lsps originating + // from the same headend, commonly used to distinguish RSVP sessions during make before + // break operations. + LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The value of RSVP-TE Session Name field of the Session Attribute object. + SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // The label received by RSVP-TE ingress. + LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` + // The label assigned by RSVP-TE egress. + LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` + // Operational state of the RSVP LSP. + SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` + // The reason for the last flap of this RSVP session. + LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` + // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. + UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` } -func (x *PatternFlowVlanPriority) Reset() { - *x = PatternFlowVlanPriority{} +func (x *RsvpLspState) Reset() { + *x = RsvpLspState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45515,13 +45677,13 @@ func (x *PatternFlowVlanPriority) Reset() { } } -func (x *PatternFlowVlanPriority) String() string { +func (x *RsvpLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority) ProtoMessage() {} +func (*RsvpLspState) ProtoMessage() {} -func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { +func (x *RsvpLspState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45533,72 +45695,89 @@ func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. +func (*RsvpLspState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{321} } -func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspState) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId } - return PatternFlowVlanPriority_Choice_unspecified + return 0 } -func (x *PatternFlowVlanPriority) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *RsvpLspState) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId } return 0 } -func (x *PatternFlowVlanPriority) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *RsvpLspState) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } - return nil + return "" } -func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { - if x != nil { - return x.Increment +func (x *RsvpLspState) GetLabelIn() uint32 { + if x != nil && x.LabelIn != nil { + return *x.LabelIn } - return nil + return 0 } -func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { - if x != nil { - return x.Decrement +func (x *RsvpLspState) GetLabelOut() uint32 { + if x != nil && x.LabelOut != nil { + return *x.LabelOut } - return nil + return 0 } -func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { - if x != nil { - return x.MetricTags +func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { + if x != nil && x.SessionStatus != nil { + return *x.SessionStatus } - return nil + return RsvpLspState_SessionStatus_unspecified } -// integer counter pattern -type PatternFlowVlanCfiCounter struct { +func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { + if x != nil && x.LastFlapReason != nil { + return *x.LastFlapReason + } + return RsvpLspState_LastFlapReason_unspecified +} + +func (x *RsvpLspState) GetUpTime() uint64 { + if x != nil && x.UpTime != nil { + return *x.UpTime + } + return 0 +} + +// This contains the list of Record Route Object(RRO) objects associated with the traffic +// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the +// route traversed by the LSP. The RRO might be present in both Path message and Resv +// message, the RRO stores the IP addresses of the routers that the traffic engineering +// tunnel traversed and also the label generated and distributed by the routers. The +// RROs in the Resv message mirrors that of the Path message, the only difference is +// that the RRO in a Resv message records the path information in the reverse direction. +type RsvpLspIpv4Rro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute + // object, nodes doing route recording should include the Label Record subobject containing + // the reported label. + ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` } -func (x *PatternFlowVlanCfiCounter) Reset() { - *x = PatternFlowVlanCfiCounter{} +func (x *RsvpLspIpv4Rro) Reset() { + *x = RsvpLspIpv4Rro{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45606,13 +45785,13 @@ func (x *PatternFlowVlanCfiCounter) Reset() { } } -func (x *PatternFlowVlanCfiCounter) String() string { +func (x *RsvpLspIpv4Rro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiCounter) ProtoMessage() {} +func (*RsvpLspIpv4Rro) ProtoMessage() {} -func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45624,55 +45803,45 @@ func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{322} } -func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *RsvpLspIpv4Rro) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return 0 + return "" } -func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { + if x != nil && x.ReportedLabel != nil { + return *x.ReportedLabel } return 0 } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowVlanCfiMetricTag struct { +// This contains the list of sub-objects included in the Explicit Route Object(ERO) +// object send in the PATH message from the ingress. These sub-objects contain the intermediate +// hops to be traversed by the LSP while being forwarded towards the egress endpoint. +type RsvpLspIpv4Ero struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 + // prefix. + Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The autonomous system number indicated by the ERO. Specified only when the ERO hop + // is an 2 or 4-byte AS number. + Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` + // The type indicated by the ERO. + Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` } -func (x *PatternFlowVlanCfiMetricTag) Reset() { - *x = PatternFlowVlanCfiMetricTag{} +func (x *RsvpLspIpv4Ero) Reset() { + *x = RsvpLspIpv4Ero{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45680,13 +45849,13 @@ func (x *PatternFlowVlanCfiMetricTag) Reset() { } } -func (x *PatternFlowVlanCfiMetricTag) String() string { +func (x *RsvpLspIpv4Ero) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} +func (*RsvpLspIpv4Ero) ProtoMessage() {} -func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45698,59 +45867,53 @@ func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{323} } -func (x *PatternFlowVlanCfiMetricTag) GetName() string { - if x != nil { - return x.Name +func (x *RsvpLspIpv4Ero) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix } return "" } -func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpLspIpv4Ero) GetAsn() uint32 { + if x != nil && x.Asn != nil { + return *x.Asn } return 0 } -func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return RsvpLspIpv4Ero_Type_unspecified } -// Canonical format indicator or drop elegible indicator -type PatternFlowVlanCfi struct { +// The capture result request to the traffic generator. Stops the port capture on the +// port_name and returns the capture. +type CaptureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The name of a port a capture is started on. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // required = true + PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` } -func (x *PatternFlowVlanCfi) Reset() { - *x = PatternFlowVlanCfi{} +func (x *CaptureRequest) Reset() { + *x = CaptureRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45758,13 +45921,13 @@ func (x *PatternFlowVlanCfi) Reset() { } } -func (x *PatternFlowVlanCfi) String() string { +func (x *CaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi) ProtoMessage() {} +func (*CaptureRequest) ProtoMessage() {} -func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { +func (x *CaptureRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45776,72 +45939,37 @@ func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { +// Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. +func (*CaptureRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{324} } -func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVlanCfi_Choice_unspecified -} - -func (x *PatternFlowVlanCfi) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVlanCfi) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { +func (x *CaptureRequest) GetPortName() string { if x != nil { - return x.MetricTags + return x.PortName } - return nil + return "" } -// integer counter pattern -type PatternFlowVlanIdCounter struct { +// mac counter pattern +type PatternFlowEthernetDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVlanIdCounter) Reset() { - *x = PatternFlowVlanIdCounter{} +func (x *PatternFlowEthernetDstCounter) Reset() { + *x = PatternFlowEthernetDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45849,13 +45977,13 @@ func (x *PatternFlowVlanIdCounter) Reset() { } } -func (x *PatternFlowVlanIdCounter) String() string { +func (x *PatternFlowEthernetDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdCounter) ProtoMessage() {} +func (*PatternFlowEthernetDstCounter) ProtoMessage() {} -func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45867,26 +45995,26 @@ func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{325} } -func (x *PatternFlowVlanIdCounter) GetStart() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowVlanIdCounter) GetStep() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowVlanIdCounter) GetCount() uint32 { +func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -45896,7 +46024,7 @@ func (x *PatternFlowVlanIdCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVlanIdMetricTag struct { +type PatternFlowEthernetDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -45910,12 +46038,12 @@ type PatternFlowVlanIdMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 12 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVlanIdMetricTag) Reset() { - *x = PatternFlowVlanIdMetricTag{} +func (x *PatternFlowEthernetDstMetricTag) Reset() { + *x = PatternFlowEthernetDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45923,13 +46051,13 @@ func (x *PatternFlowVlanIdMetricTag) Reset() { } } -func (x *PatternFlowVlanIdMetricTag) String() string { +func (x *PatternFlowEthernetDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} -func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45941,59 +46069,64 @@ func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{326} } -func (x *PatternFlowVlanIdMetricTag) GetName() string { +func (x *PatternFlowEthernetDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Vlan identifier -type PatternFlowVlanId struct { +// Destination MAC address +type PatternFlowEthernetDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 00:00:00:00:00:00 + Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVlanId) Reset() { - *x = PatternFlowVlanId{} +func (x *PatternFlowEthernetDst) Reset() { + *x = PatternFlowEthernetDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46001,13 +46134,13 @@ func (x *PatternFlowVlanId) Reset() { } } -func (x *PatternFlowVlanId) String() string { +func (x *PatternFlowEthernetDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId) ProtoMessage() {} +func (*PatternFlowEthernetDst) ProtoMessage() {} -func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46019,72 +46152,79 @@ func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327} +// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327} } -func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { +func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanId_Choice_unspecified + return PatternFlowEthernetDst_Choice_unspecified } -func (x *PatternFlowVlanId) GetValue() uint32 { +func (x *PatternFlowEthernetDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowVlanId) GetValues() []uint32 { +func (x *PatternFlowEthernetDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { +func (x *PatternFlowEthernetDst) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto + } + return "" +} + +func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { +func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { +func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowVlanTpidCounter struct { +// mac counter pattern +type PatternFlowEthernetSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33024 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVlanTpidCounter) Reset() { - *x = PatternFlowVlanTpidCounter{} +func (x *PatternFlowEthernetSrcCounter) Reset() { + *x = PatternFlowEthernetSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46092,13 +46232,13 @@ func (x *PatternFlowVlanTpidCounter) Reset() { } } -func (x *PatternFlowVlanTpidCounter) String() string { +func (x *PatternFlowEthernetSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidCounter) ProtoMessage() {} +func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} -func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46110,26 +46250,26 @@ func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{328} } -func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46139,7 +46279,7 @@ func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVlanTpidMetricTag struct { +type PatternFlowEthernetSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46153,12 +46293,12 @@ type PatternFlowVlanTpidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVlanTpidMetricTag) Reset() { - *x = PatternFlowVlanTpidMetricTag{} +func (x *PatternFlowEthernetSrcMetricTag) Reset() { + *x = PatternFlowEthernetSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46166,13 +46306,13 @@ func (x *PatternFlowVlanTpidMetricTag) Reset() { } } -func (x *PatternFlowVlanTpidMetricTag) String() string { +func (x *PatternFlowEthernetSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46184,59 +46324,59 @@ func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{329} } -func (x *PatternFlowVlanTpidMetricTag) GetName() string { +func (x *PatternFlowEthernetSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol identifier -type PatternFlowVlanTpid struct { +// Source MAC address +type PatternFlowEthernetSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33024 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33024] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVlanTpid) Reset() { - *x = PatternFlowVlanTpid{} +func (x *PatternFlowEthernetSrc) Reset() { + *x = PatternFlowEthernetSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46244,13 +46384,13 @@ func (x *PatternFlowVlanTpid) Reset() { } } -func (x *PatternFlowVlanTpid) String() string { +func (x *PatternFlowEthernetSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid) ProtoMessage() {} +func (*PatternFlowEthernetSrc) ProtoMessage() {} -func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46262,47 +46402,47 @@ func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{330} } -func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { +func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanTpid_Choice_unspecified + return PatternFlowEthernetSrc_Choice_unspecified } -func (x *PatternFlowVlanTpid) GetValue() uint32 { +func (x *PatternFlowEthernetSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowVlanTpid) GetValues() []uint32 { +func (x *PatternFlowEthernetSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { +func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { +func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { +func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { if x != nil { return x.MetricTags } @@ -46310,13 +46450,13 @@ func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { } // integer counter pattern -type PatternFlowVxlanFlagsCounter struct { +type PatternFlowEthernetEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 8 + // default = 65535 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -46326,8 +46466,8 @@ type PatternFlowVxlanFlagsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanFlagsCounter) Reset() { - *x = PatternFlowVxlanFlagsCounter{} +func (x *PatternFlowEthernetEtherTypeCounter) Reset() { + *x = PatternFlowEthernetEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46335,13 +46475,13 @@ func (x *PatternFlowVxlanFlagsCounter) Reset() { } } -func (x *PatternFlowVxlanFlagsCounter) String() string { +func (x *PatternFlowEthernetEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46353,26 +46493,26 @@ func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{331} } -func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46382,7 +46522,7 @@ func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanFlagsMetricTag struct { +type PatternFlowEthernetEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46396,12 +46536,12 @@ type PatternFlowVxlanFlagsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanFlagsMetricTag) Reset() { - *x = PatternFlowVxlanFlagsMetricTag{} +func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46409,13 +46549,13 @@ func (x *PatternFlowVxlanFlagsMetricTag) Reset() { } } -func (x *PatternFlowVxlanFlagsMetricTag) String() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46427,61 +46567,64 @@ func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{332} } -func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid -// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and -// MUST be set to zero on transmission and ignored on receipt. -type PatternFlowVxlanFlags struct { +// Ethernet type +type PatternFlowEthernetEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 8 + // default = 65535 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [8] + // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 65535 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanFlags) Reset() { - *x = PatternFlowVxlanFlags{} +func (x *PatternFlowEthernetEtherType) Reset() { + *x = PatternFlowEthernetEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46489,13 +46632,13 @@ func (x *PatternFlowVxlanFlags) Reset() { } } -func (x *PatternFlowVxlanFlags) String() string { +func (x *PatternFlowEthernetEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags) ProtoMessage() {} +func (*PatternFlowEthernetEtherType) ProtoMessage() {} -func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46507,47 +46650,54 @@ func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{333} } -func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { +func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanFlags_Choice_unspecified + return PatternFlowEthernetEtherType_Choice_unspecified } -func (x *PatternFlowVxlanFlags) GetValue() uint32 { +func (x *PatternFlowEthernetEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanFlags) GetValues() []uint32 { +func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { +func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { +func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { +func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -46555,7 +46705,7 @@ func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTa } // integer counter pattern -type PatternFlowVxlanReserved0Counter struct { +type PatternFlowEthernetPfcQueueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46571,8 +46721,8 @@ type PatternFlowVxlanReserved0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanReserved0Counter) Reset() { - *x = PatternFlowVxlanReserved0Counter{} +func (x *PatternFlowEthernetPfcQueueCounter) Reset() { + *x = PatternFlowEthernetPfcQueueCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46580,13 +46730,13 @@ func (x *PatternFlowVxlanReserved0Counter) Reset() { } } -func (x *PatternFlowVxlanReserved0Counter) String() string { +func (x *PatternFlowEthernetPfcQueueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46598,26 +46748,26 @@ func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{334} } -func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46627,7 +46777,7 @@ func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanReserved0MetricTag struct { +type PatternFlowEthernetPfcQueueMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46641,12 +46791,12 @@ type PatternFlowVxlanReserved0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanReserved0MetricTag) Reset() { - *x = PatternFlowVxlanReserved0MetricTag{} +func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { + *x = PatternFlowEthernetPfcQueueMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46654,13 +46804,13 @@ func (x *PatternFlowVxlanReserved0MetricTag) Reset() { } } -func (x *PatternFlowVxlanReserved0MetricTag) String() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46672,41 +46822,41 @@ func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{335} } -func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowVxlanReserved0 struct { +// Priority flow control queue +type PatternFlowEthernetPfcQueue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -46714,17 +46864,17 @@ type PatternFlowVxlanReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanReserved0) Reset() { - *x = PatternFlowVxlanReserved0{} +func (x *PatternFlowEthernetPfcQueue) Reset() { + *x = PatternFlowEthernetPfcQueue{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46732,13 +46882,13 @@ func (x *PatternFlowVxlanReserved0) Reset() { } } -func (x *PatternFlowVxlanReserved0) String() string { +func (x *PatternFlowEthernetPfcQueue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46750,47 +46900,47 @@ func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{336} } -func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { +func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanReserved0_Choice_unspecified + return PatternFlowEthernetPfcQueue_Choice_unspecified } -func (x *PatternFlowVxlanReserved0) GetValue() uint32 { +func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { +func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { +func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { +func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { +func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { if x != nil { return x.MetricTags } @@ -46798,7 +46948,7 @@ func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0 } // integer counter pattern -type PatternFlowVxlanVniCounter struct { +type PatternFlowVlanPriorityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46814,8 +46964,8 @@ type PatternFlowVxlanVniCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanVniCounter) Reset() { - *x = PatternFlowVxlanVniCounter{} +func (x *PatternFlowVlanPriorityCounter) Reset() { + *x = PatternFlowVlanPriorityCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46823,13 +46973,13 @@ func (x *PatternFlowVxlanVniCounter) Reset() { } } -func (x *PatternFlowVxlanVniCounter) String() string { +func (x *PatternFlowVlanPriorityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniCounter) ProtoMessage() {} +func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} -func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46841,26 +46991,26 @@ func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{337} } -func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46870,7 +47020,7 @@ func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanVniMetricTag struct { +type PatternFlowVlanPriorityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46884,12 +47034,12 @@ type PatternFlowVxlanVniMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanVniMetricTag) Reset() { - *x = PatternFlowVxlanVniMetricTag{} +func (x *PatternFlowVlanPriorityMetricTag) Reset() { + *x = PatternFlowVlanPriorityMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46897,13 +47047,13 @@ func (x *PatternFlowVxlanVniMetricTag) Reset() { } } -func (x *PatternFlowVxlanVniMetricTag) String() string { +func (x *PatternFlowVlanPriorityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} +func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46915,64 +47065,59 @@ func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{338} } -func (x *PatternFlowVxlanVniMetricTag) GetName() string { +func (x *PatternFlowVlanPriorityMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// VXLAN network id -type PatternFlowVxlanVni struct { +// Priority code point +type PatternFlowVlanPriority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanVni) Reset() { - *x = PatternFlowVxlanVni{} +func (x *PatternFlowVlanPriority) Reset() { + *x = PatternFlowVlanPriority{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46980,13 +47125,13 @@ func (x *PatternFlowVxlanVni) Reset() { } } -func (x *PatternFlowVxlanVni) String() string { +func (x *PatternFlowVlanPriority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni) ProtoMessage() {} +func (*PatternFlowVlanPriority) ProtoMessage() {} -func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46998,54 +47143,47 @@ func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{339} } -func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { +func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanVni_Choice_unspecified + return PatternFlowVlanPriority_Choice_unspecified } -func (x *PatternFlowVxlanVni) GetValue() uint32 { +func (x *PatternFlowVlanPriority) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanVni) GetValues() []uint32 { +func (x *PatternFlowVlanPriority) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanVni) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { +func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { +func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { +func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { if x != nil { return x.MetricTags } @@ -47053,7 +47191,7 @@ func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { } // integer counter pattern -type PatternFlowVxlanReserved1Counter struct { +type PatternFlowVlanCfiCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47069,8 +47207,8 @@ type PatternFlowVxlanReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanReserved1Counter) Reset() { - *x = PatternFlowVxlanReserved1Counter{} +func (x *PatternFlowVlanCfiCounter) Reset() { + *x = PatternFlowVlanCfiCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47078,13 +47216,13 @@ func (x *PatternFlowVxlanReserved1Counter) Reset() { } } -func (x *PatternFlowVxlanReserved1Counter) String() string { +func (x *PatternFlowVlanCfiCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} +func (*PatternFlowVlanCfiCounter) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47096,26 +47234,26 @@ func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{340} } -func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { +func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47125,7 +47263,7 @@ func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanReserved1MetricTag struct { +type PatternFlowVlanCfiMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47139,12 +47277,12 @@ type PatternFlowVxlanReserved1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanReserved1MetricTag) Reset() { - *x = PatternFlowVxlanReserved1MetricTag{} +func (x *PatternFlowVlanCfiMetricTag) Reset() { + *x = PatternFlowVlanCfiMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47152,13 +47290,13 @@ func (x *PatternFlowVxlanReserved1MetricTag) Reset() { } } -func (x *PatternFlowVxlanReserved1MetricTag) String() string { +func (x *PatternFlowVlanCfiMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} +func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47170,41 +47308,41 @@ func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{341} } -func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { +func (x *PatternFlowVlanCfiMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { +func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowVxlanReserved1 struct { +// Canonical format indicator or drop elegible indicator +type PatternFlowVlanCfi struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -47212,17 +47350,17 @@ type PatternFlowVxlanReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanReserved1) Reset() { - *x = PatternFlowVxlanReserved1{} +func (x *PatternFlowVlanCfi) Reset() { + *x = PatternFlowVlanCfi{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47230,13 +47368,13 @@ func (x *PatternFlowVxlanReserved1) Reset() { } } -func (x *PatternFlowVxlanReserved1) String() string { +func (x *PatternFlowVlanCfi) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1) ProtoMessage() {} +func (*PatternFlowVlanCfi) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47248,47 +47386,47 @@ func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{342} } -func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { +func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanReserved1_Choice_unspecified + return PatternFlowVlanCfi_Choice_unspecified } -func (x *PatternFlowVxlanReserved1) GetValue() uint32 { +func (x *PatternFlowVlanCfi) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { +func (x *PatternFlowVlanCfi) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { +func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { +func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { +func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { if x != nil { return x.MetricTags } @@ -47296,13 +47434,13 @@ func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1 } // integer counter pattern -type PatternFlowIpv4VersionCounter struct { +type PatternFlowVlanIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 4 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47312,8 +47450,8 @@ type PatternFlowIpv4VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4VersionCounter) Reset() { - *x = PatternFlowIpv4VersionCounter{} +func (x *PatternFlowVlanIdCounter) Reset() { + *x = PatternFlowVlanIdCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47321,13 +47459,13 @@ func (x *PatternFlowIpv4VersionCounter) Reset() { } } -func (x *PatternFlowIpv4VersionCounter) String() string { +func (x *PatternFlowVlanIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} +func (*PatternFlowVlanIdCounter) ProtoMessage() {} -func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47339,26 +47477,26 @@ func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{343} } -func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { +func (x *PatternFlowVlanIdCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { +func (x *PatternFlowVlanIdCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { +func (x *PatternFlowVlanIdCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47368,7 +47506,7 @@ func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4VersionMetricTag struct { +type PatternFlowVlanIdMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47382,12 +47520,12 @@ type PatternFlowIpv4VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 12 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4VersionMetricTag) Reset() { - *x = PatternFlowIpv4VersionMetricTag{} +func (x *PatternFlowVlanIdMetricTag) Reset() { + *x = PatternFlowVlanIdMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47395,13 +47533,13 @@ func (x *PatternFlowIpv4VersionMetricTag) Reset() { } } -func (x *PatternFlowIpv4VersionMetricTag) String() string { +func (x *PatternFlowVlanIdMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} +func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47413,59 +47551,59 @@ func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{344} } -func (x *PatternFlowIpv4VersionMetricTag) GetName() string { +func (x *PatternFlowVlanIdMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version -type PatternFlowIpv4Version struct { +// Vlan identifier +type PatternFlowVlanId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 4 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [4] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Version) Reset() { - *x = PatternFlowIpv4Version{} +func (x *PatternFlowVlanId) Reset() { + *x = PatternFlowVlanId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47473,13 +47611,13 @@ func (x *PatternFlowIpv4Version) Reset() { } } -func (x *PatternFlowIpv4Version) String() string { +func (x *PatternFlowVlanId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version) ProtoMessage() {} +func (*PatternFlowVlanId) ProtoMessage() {} -func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47491,47 +47629,47 @@ func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{345} } -func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { +func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Version_Choice_unspecified + return PatternFlowVlanId_Choice_unspecified } -func (x *PatternFlowIpv4Version) GetValue() uint32 { +func (x *PatternFlowVlanId) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Version) GetValues() []uint32 { +func (x *PatternFlowVlanId) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { +func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { +func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { +func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { if x != nil { return x.MetricTags } @@ -47539,13 +47677,13 @@ func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetric } // integer counter pattern -type PatternFlowIpv4HeaderLengthCounter struct { +type PatternFlowVlanTpidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 5 + // default = 33024 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47555,8 +47693,8 @@ type PatternFlowIpv4HeaderLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { - *x = PatternFlowIpv4HeaderLengthCounter{} +func (x *PatternFlowVlanTpidCounter) Reset() { + *x = PatternFlowVlanTpidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47564,13 +47702,13 @@ func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { } } -func (x *PatternFlowIpv4HeaderLengthCounter) String() string { +func (x *PatternFlowVlanTpidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} +func (*PatternFlowVlanTpidCounter) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47582,26 +47720,26 @@ func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{346} } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { +func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47611,7 +47749,7 @@ func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4HeaderLengthMetricTag struct { +type PatternFlowVlanTpidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47625,12 +47763,12 @@ type PatternFlowIpv4HeaderLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { - *x = PatternFlowIpv4HeaderLengthMetricTag{} +func (x *PatternFlowVlanTpidMetricTag) Reset() { + *x = PatternFlowVlanTpidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47638,13 +47776,13 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { +func (x *PatternFlowVlanTpidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} +func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47656,64 +47794,59 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{347} } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { +func (x *PatternFlowVlanTpidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Header length -type PatternFlowIpv4HeaderLength struct { +// Protocol identifier +type PatternFlowVlanTpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 5 + // default = 33024 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [5] + // default = [33024] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 5 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4HeaderLength) Reset() { - *x = PatternFlowIpv4HeaderLength{} +func (x *PatternFlowVlanTpid) Reset() { + *x = PatternFlowVlanTpid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47721,13 +47854,13 @@ func (x *PatternFlowIpv4HeaderLength) Reset() { } } -func (x *PatternFlowIpv4HeaderLength) String() string { +func (x *PatternFlowVlanTpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} +func (*PatternFlowVlanTpid) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47739,54 +47872,47 @@ func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{348} } -func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { +func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4HeaderLength_Choice_unspecified + return PatternFlowVlanTpid_Choice_unspecified } -func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { +func (x *PatternFlowVlanTpid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { +func (x *PatternFlowVlanTpid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { +func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { +func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { +func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { if x != nil { return x.MetricTags } @@ -47794,13 +47920,13 @@ func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLe } // integer counter pattern -type PatternFlowIpv4TotalLengthCounter struct { +type PatternFlowVxlanFlagsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 46 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47810,8 +47936,8 @@ type PatternFlowIpv4TotalLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TotalLengthCounter) Reset() { - *x = PatternFlowIpv4TotalLengthCounter{} +func (x *PatternFlowVxlanFlagsCounter) Reset() { + *x = PatternFlowVxlanFlagsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47819,13 +47945,13 @@ func (x *PatternFlowIpv4TotalLengthCounter) Reset() { } } -func (x *PatternFlowIpv4TotalLengthCounter) String() string { +func (x *PatternFlowVxlanFlagsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} +func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47837,26 +47963,26 @@ func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{349} } -func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47866,7 +47992,7 @@ func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TotalLengthMetricTag struct { +type PatternFlowVxlanFlagsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47880,12 +48006,12 @@ type PatternFlowIpv4TotalLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { - *x = PatternFlowIpv4TotalLengthMetricTag{} +func (x *PatternFlowVxlanFlagsMetricTag) Reset() { + *x = PatternFlowVxlanFlagsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47893,13 +48019,13 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { +func (x *PatternFlowVxlanFlagsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47911,64 +48037,61 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{350} } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { +func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Total length -type PatternFlowIpv4TotalLength struct { +// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid +// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and +// MUST be set to zero on transmission and ignored on receipt. +type PatternFlowVxlanFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 46 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [46] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 46 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TotalLength) Reset() { - *x = PatternFlowIpv4TotalLength{} +func (x *PatternFlowVxlanFlags) Reset() { + *x = PatternFlowVxlanFlags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47976,13 +48099,13 @@ func (x *PatternFlowIpv4TotalLength) Reset() { } } -func (x *PatternFlowIpv4TotalLength) String() string { +func (x *PatternFlowVxlanFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength) ProtoMessage() {} +func (*PatternFlowVxlanFlags) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47994,54 +48117,47 @@ func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{351} } -func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { +func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TotalLength_Choice_unspecified + return PatternFlowVxlanFlags_Choice_unspecified } -func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { +func (x *PatternFlowVxlanFlags) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { +func (x *PatternFlowVxlanFlags) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { +func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { +func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { +func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { if x != nil { return x.MetricTags } @@ -48049,7 +48165,7 @@ func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLeng } // integer counter pattern -type PatternFlowIpv4IdentificationCounter struct { +type PatternFlowVxlanReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48065,8 +48181,8 @@ type PatternFlowIpv4IdentificationCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4IdentificationCounter) Reset() { - *x = PatternFlowIpv4IdentificationCounter{} +func (x *PatternFlowVxlanReserved0Counter) Reset() { + *x = PatternFlowVxlanReserved0Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48074,13 +48190,13 @@ func (x *PatternFlowIpv4IdentificationCounter) Reset() { } } -func (x *PatternFlowIpv4IdentificationCounter) String() string { +func (x *PatternFlowVxlanReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48092,26 +48208,26 @@ func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{352} } -func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48121,7 +48237,7 @@ func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4IdentificationMetricTag struct { +type PatternFlowVxlanReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48135,12 +48251,12 @@ type PatternFlowIpv4IdentificationMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { - *x = PatternFlowIpv4IdentificationMetricTag{} +func (x *PatternFlowVxlanReserved0MetricTag) Reset() { + *x = PatternFlowVxlanReserved0MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48148,13 +48264,13 @@ func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { } } -func (x *PatternFlowIpv4IdentificationMetricTag) String() string { +func (x *PatternFlowVxlanReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48166,41 +48282,41 @@ func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{353} } -func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Identification -type PatternFlowIpv4Identification struct { +// Reserved field +type PatternFlowVxlanReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -48208,17 +48324,17 @@ type PatternFlowIpv4Identification struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Identification) Reset() { - *x = PatternFlowIpv4Identification{} +func (x *PatternFlowVxlanReserved0) Reset() { + *x = PatternFlowVxlanReserved0{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48226,13 +48342,13 @@ func (x *PatternFlowIpv4Identification) Reset() { } } -func (x *PatternFlowIpv4Identification) String() string { +func (x *PatternFlowVxlanReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification) ProtoMessage() {} +func (*PatternFlowVxlanReserved0) ProtoMessage() {} -func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48244,47 +48360,47 @@ func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{354} } -func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { +func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Identification_Choice_unspecified + return PatternFlowVxlanReserved0_Choice_unspecified } -func (x *PatternFlowIpv4Identification) GetValue() uint32 { +func (x *PatternFlowVxlanReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Identification) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { +func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { +func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { +func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { if x != nil { return x.MetricTags } @@ -48292,7 +48408,7 @@ func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4Identi } // integer counter pattern -type PatternFlowIpv4ReservedCounter struct { +type PatternFlowVxlanVniCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48308,8 +48424,8 @@ type PatternFlowIpv4ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4ReservedCounter) Reset() { - *x = PatternFlowIpv4ReservedCounter{} +func (x *PatternFlowVxlanVniCounter) Reset() { + *x = PatternFlowVxlanVniCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48317,13 +48433,13 @@ func (x *PatternFlowIpv4ReservedCounter) Reset() { } } -func (x *PatternFlowIpv4ReservedCounter) String() string { +func (x *PatternFlowVxlanVniCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} +func (*PatternFlowVxlanVniCounter) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48335,26 +48451,26 @@ func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{355} } -func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { +func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48364,7 +48480,7 @@ func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4ReservedMetricTag struct { +type PatternFlowVxlanVniMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48378,12 +48494,12 @@ type PatternFlowIpv4ReservedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4ReservedMetricTag) Reset() { - *x = PatternFlowIpv4ReservedMetricTag{} +func (x *PatternFlowVxlanVniMetricTag) Reset() { + *x = PatternFlowVxlanVniMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48391,13 +48507,13 @@ func (x *PatternFlowIpv4ReservedMetricTag) Reset() { } } -func (x *PatternFlowIpv4ReservedMetricTag) String() string { +func (x *PatternFlowVxlanVniMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48409,59 +48525,64 @@ func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{356} } -func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { +func (x *PatternFlowVxlanVniMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved flag. -type PatternFlowIpv4Reserved struct { +// VXLAN network id +type PatternFlowVxlanVni struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Reserved) Reset() { - *x = PatternFlowIpv4Reserved{} +func (x *PatternFlowVxlanVni) Reset() { + *x = PatternFlowVxlanVni{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48469,13 +48590,13 @@ func (x *PatternFlowIpv4Reserved) Reset() { } } -func (x *PatternFlowIpv4Reserved) String() string { +func (x *PatternFlowVxlanVni) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved) ProtoMessage() {} +func (*PatternFlowVxlanVni) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48487,47 +48608,54 @@ func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{357} } -func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { +func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Reserved_Choice_unspecified + return PatternFlowVxlanVni_Choice_unspecified } -func (x *PatternFlowIpv4Reserved) GetValue() uint32 { +func (x *PatternFlowVxlanVni) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { +func (x *PatternFlowVxlanVni) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { +func (x *PatternFlowVxlanVni) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { +func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { +func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { if x != nil { return x.MetricTags } @@ -48535,7 +48663,7 @@ func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetr } // integer counter pattern -type PatternFlowIpv4DontFragmentCounter struct { +type PatternFlowVxlanReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48551,8 +48679,8 @@ type PatternFlowIpv4DontFragmentCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DontFragmentCounter) Reset() { - *x = PatternFlowIpv4DontFragmentCounter{} +func (x *PatternFlowVxlanReserved1Counter) Reset() { + *x = PatternFlowVxlanReserved1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48560,13 +48688,13 @@ func (x *PatternFlowIpv4DontFragmentCounter) Reset() { } } -func (x *PatternFlowIpv4DontFragmentCounter) String() string { +func (x *PatternFlowVxlanReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48578,26 +48706,26 @@ func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{358} } -func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48607,7 +48735,7 @@ func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DontFragmentMetricTag struct { +type PatternFlowVxlanReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48621,12 +48749,12 @@ type PatternFlowIpv4DontFragmentMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { - *x = PatternFlowIpv4DontFragmentMetricTag{} +func (x *PatternFlowVxlanReserved1MetricTag) Reset() { + *x = PatternFlowVxlanReserved1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48634,13 +48762,13 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { } } -func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { +func (x *PatternFlowVxlanReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48652,42 +48780,41 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{359} } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Dont fragment flag If the dont_fragment flag is set and fragmentation is required -// to route the packet then the packet is dropped. -type PatternFlowIpv4DontFragment struct { +// Reserved field +type PatternFlowVxlanReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -48695,17 +48822,17 @@ type PatternFlowIpv4DontFragment struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DontFragment) Reset() { - *x = PatternFlowIpv4DontFragment{} +func (x *PatternFlowVxlanReserved1) Reset() { + *x = PatternFlowVxlanReserved1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48713,13 +48840,13 @@ func (x *PatternFlowIpv4DontFragment) Reset() { } } -func (x *PatternFlowIpv4DontFragment) String() string { +func (x *PatternFlowVxlanReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment) ProtoMessage() {} +func (*PatternFlowVxlanReserved1) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48731,47 +48858,47 @@ func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{360} } -func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { +func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DontFragment_Choice_unspecified + return PatternFlowVxlanReserved1_Choice_unspecified } -func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { +func (x *PatternFlowVxlanReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { +func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { +func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { +func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { if x != nil { return x.MetricTags } @@ -48779,13 +48906,13 @@ func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFrag } // integer counter pattern -type PatternFlowIpv4MoreFragmentsCounter struct { +type PatternFlowIpv4VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -48795,8 +48922,8 @@ type PatternFlowIpv4MoreFragmentsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { - *x = PatternFlowIpv4MoreFragmentsCounter{} +func (x *PatternFlowIpv4VersionCounter) Reset() { + *x = PatternFlowIpv4VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48804,13 +48931,13 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { } } -func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { +func (x *PatternFlowIpv4VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} +func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48822,26 +48949,26 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{361} } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48851,7 +48978,7 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4MoreFragmentsMetricTag struct { +type PatternFlowIpv4VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48865,12 +48992,12 @@ type PatternFlowIpv4MoreFragmentsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { - *x = PatternFlowIpv4MoreFragmentsMetricTag{} +func (x *PatternFlowIpv4VersionMetricTag) Reset() { + *x = PatternFlowIpv4VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48878,13 +49005,13 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { } } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { +func (x *PatternFlowIpv4VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48896,59 +49023,59 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{362} } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { +func (x *PatternFlowIpv4VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// More fragments flag -type PatternFlowIpv4MoreFragments struct { +// Version +type PatternFlowIpv4Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4MoreFragments) Reset() { - *x = PatternFlowIpv4MoreFragments{} +func (x *PatternFlowIpv4Version) Reset() { + *x = PatternFlowIpv4Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48956,13 +49083,13 @@ func (x *PatternFlowIpv4MoreFragments) Reset() { } } -func (x *PatternFlowIpv4MoreFragments) String() string { +func (x *PatternFlowIpv4Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} +func (*PatternFlowIpv4Version) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48974,47 +49101,47 @@ func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{363} } -func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { +func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4MoreFragments_Choice_unspecified + return PatternFlowIpv4Version_Choice_unspecified } -func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { +func (x *PatternFlowIpv4Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { +func (x *PatternFlowIpv4Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { +func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { +func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { +func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { if x != nil { return x.MetricTags } @@ -49022,13 +49149,13 @@ func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFra } // integer counter pattern -type PatternFlowIpv4FragmentOffsetCounter struct { +type PatternFlowIpv4HeaderLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 5 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49038,8 +49165,8 @@ type PatternFlowIpv4FragmentOffsetCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { - *x = PatternFlowIpv4FragmentOffsetCounter{} +func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { + *x = PatternFlowIpv4HeaderLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49047,13 +49174,13 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { } } -func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { +func (x *PatternFlowIpv4HeaderLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49065,26 +49192,26 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{364} } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49094,7 +49221,7 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4FragmentOffsetMetricTag struct { +type PatternFlowIpv4HeaderLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49108,12 +49235,12 @@ type PatternFlowIpv4FragmentOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 5 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { - *x = PatternFlowIpv4FragmentOffsetMetricTag{} +func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { + *x = PatternFlowIpv4HeaderLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49121,13 +49248,13 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { } } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49139,59 +49266,64 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{365} } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Fragment offset -type PatternFlowIpv4FragmentOffset struct { +// Header length +type PatternFlowIpv4HeaderLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 5 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [5] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 5 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4FragmentOffset) Reset() { - *x = PatternFlowIpv4FragmentOffset{} +func (x *PatternFlowIpv4HeaderLength) Reset() { + *x = PatternFlowIpv4HeaderLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49199,13 +49331,13 @@ func (x *PatternFlowIpv4FragmentOffset) Reset() { } } -func (x *PatternFlowIpv4FragmentOffset) String() string { +func (x *PatternFlowIpv4HeaderLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49217,47 +49349,54 @@ func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{366} } -func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { +func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4FragmentOffset_Choice_unspecified + return PatternFlowIpv4HeaderLength_Choice_unspecified } -func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { +func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { if x != nil { return x.MetricTags } @@ -49265,13 +49404,13 @@ func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4Fragme } // integer counter pattern -type PatternFlowIpv4TimeToLiveCounter struct { +type PatternFlowIpv4TotalLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 46 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49281,8 +49420,8 @@ type PatternFlowIpv4TimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { - *x = PatternFlowIpv4TimeToLiveCounter{} +func (x *PatternFlowIpv4TotalLengthCounter) Reset() { + *x = PatternFlowIpv4TotalLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49290,13 +49429,13 @@ func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { } } -func (x *PatternFlowIpv4TimeToLiveCounter) String() string { +func (x *PatternFlowIpv4TotalLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49308,26 +49447,26 @@ func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{367} } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49337,7 +49476,7 @@ func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TimeToLiveMetricTag struct { +type PatternFlowIpv4TotalLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49351,12 +49490,12 @@ type PatternFlowIpv4TimeToLiveMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { - *x = PatternFlowIpv4TimeToLiveMetricTag{} +func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { + *x = PatternFlowIpv4TotalLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49364,13 +49503,13 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { } } -func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49382,59 +49521,64 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{368} } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowIpv4TimeToLive struct { +// Total length +type PatternFlowIpv4TotalLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 46 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [46] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 46 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TimeToLive) Reset() { - *x = PatternFlowIpv4TimeToLive{} +func (x *PatternFlowIpv4TotalLength) Reset() { + *x = PatternFlowIpv4TotalLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49442,13 +49586,13 @@ func (x *PatternFlowIpv4TimeToLive) Reset() { } } -func (x *PatternFlowIpv4TimeToLive) String() string { +func (x *PatternFlowIpv4TotalLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49460,47 +49604,54 @@ func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{369} } -func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { +func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TimeToLive_Choice_unspecified + return PatternFlowIpv4TotalLength_Choice_unspecified } -func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { +func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { +func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { +func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { if x != nil { return x.MetricTags } @@ -49508,13 +49659,13 @@ func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLive } // integer counter pattern -type PatternFlowIpv4ProtocolCounter struct { +type PatternFlowIpv4IdentificationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 61 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49524,8 +49675,8 @@ type PatternFlowIpv4ProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4ProtocolCounter) Reset() { - *x = PatternFlowIpv4ProtocolCounter{} +func (x *PatternFlowIpv4IdentificationCounter) Reset() { + *x = PatternFlowIpv4IdentificationCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49533,13 +49684,13 @@ func (x *PatternFlowIpv4ProtocolCounter) Reset() { } } -func (x *PatternFlowIpv4ProtocolCounter) String() string { +func (x *PatternFlowIpv4IdentificationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49551,26 +49702,26 @@ func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{370} } -func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49580,7 +49731,7 @@ func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4ProtocolMetricTag struct { +type PatternFlowIpv4IdentificationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49594,12 +49745,12 @@ type PatternFlowIpv4ProtocolMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { - *x = PatternFlowIpv4ProtocolMetricTag{} +func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { + *x = PatternFlowIpv4IdentificationMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49607,13 +49758,13 @@ func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { } } -func (x *PatternFlowIpv4ProtocolMetricTag) String() string { +func (x *PatternFlowIpv4IdentificationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49625,64 +49776,59 @@ func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{371} } -func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { +func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol, default is 61 any host internal protocol -type PatternFlowIpv4Protocol struct { +// Identification +type PatternFlowIpv4Identification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 61 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [61] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 61 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Protocol) Reset() { - *x = PatternFlowIpv4Protocol{} +func (x *PatternFlowIpv4Identification) Reset() { + *x = PatternFlowIpv4Identification{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49690,13 +49836,13 @@ func (x *PatternFlowIpv4Protocol) Reset() { } } -func (x *PatternFlowIpv4Protocol) String() string { +func (x *PatternFlowIpv4Identification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol) ProtoMessage() {} +func (*PatternFlowIpv4Identification) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49708,78 +49854,72 @@ func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{372} } -func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { +func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Protocol_Choice_unspecified + return PatternFlowIpv4Identification_Choice_unspecified } -func (x *PatternFlowIpv4Protocol) GetValue() uint32 { +func (x *PatternFlowIpv4Identification) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { +func (x *PatternFlowIpv4Identification) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { +func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { if x != nil { return x.MetricTags } return nil } -// Header checksum -type PatternFlowIpv4HeaderChecksum struct { +// integer counter pattern +type PatternFlowIpv4ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4HeaderChecksum) Reset() { - *x = PatternFlowIpv4HeaderChecksum{} +func (x *PatternFlowIpv4ReservedCounter) Reset() { + *x = PatternFlowIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49787,13 +49927,13 @@ func (x *PatternFlowIpv4HeaderChecksum) Reset() { } } -func (x *PatternFlowIpv4HeaderChecksum) String() string { +func (x *PatternFlowIpv4ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} +func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49805,96 +49945,26 @@ func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{373} } -func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIpv4HeaderChecksum_Choice_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIpv4HeaderChecksum_Generated_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ipv4 counter pattern -type PatternFlowIpv4SrcCounter struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowIpv4SrcCounter) Reset() { - *x = PatternFlowIpv4SrcCounter{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[374] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4SrcCounter) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} - -func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[374] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{374} -} - -func (x *PatternFlowIpv4SrcCounter) GetStart() string { +func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetStep() string { +func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49904,7 +49974,7 @@ func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4SrcMetricTag struct { +type PatternFlowIpv4ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49918,27 +49988,27 @@ type PatternFlowIpv4SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4SrcMetricTag) Reset() { - *x = PatternFlowIpv4SrcMetricTag{} +func (x *PatternFlowIpv4ReservedMetricTag) Reset() { + *x = PatternFlowIpv4ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[375] + mi := &file_otg_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4SrcMetricTag) String() string { +func (x *PatternFlowIpv4ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[375] +func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49949,74 +50019,74 @@ func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375} +// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{374} } -func (x *PatternFlowIpv4SrcMetricTag) GetName() string { +func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source address -type PatternFlowIpv4Src struct { +// Reserved flag. +type PatternFlowIpv4Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Src) Reset() { - *x = PatternFlowIpv4Src{} +func (x *PatternFlowIpv4Reserved) Reset() { + *x = PatternFlowIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[376] + mi := &file_otg_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src) String() string { +func (x *PatternFlowIpv4Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src) ProtoMessage() {} +func (*PatternFlowIpv4Reserved) ProtoMessage() {} -func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[376] +func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50027,87 +50097,87 @@ func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376} +// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375} } -func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { +func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Src_Choice_unspecified + return PatternFlowIpv4Reserved_Choice_unspecified } -func (x *PatternFlowIpv4Src) GetValue() string { +func (x *PatternFlowIpv4Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Src) GetValues() []string { +func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { +func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowIpv4DstCounter struct { +// integer counter pattern +type PatternFlowIpv4DontFragmentCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DstCounter) Reset() { - *x = PatternFlowIpv4DstCounter{} +func (x *PatternFlowIpv4DontFragmentCounter) Reset() { + *x = PatternFlowIpv4DontFragmentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[377] + mi := &file_otg_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstCounter) String() string { +func (x *PatternFlowIpv4DontFragmentCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstCounter) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[377] +func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50118,26 +50188,26 @@ func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{377} +// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{376} } -func (x *PatternFlowIpv4DstCounter) GetStart() string { +func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetStep() string { +func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50147,7 +50217,7 @@ func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DstMetricTag struct { +type PatternFlowIpv4DontFragmentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50161,27 +50231,27 @@ type PatternFlowIpv4DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DstMetricTag) Reset() { - *x = PatternFlowIpv4DstMetricTag{} +func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { + *x = PatternFlowIpv4DontFragmentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[378] + mi := &file_otg_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstMetricTag) String() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[378] +func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50192,74 +50262,75 @@ func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378} +// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{377} } -func (x *PatternFlowIpv4DstMetricTag) GetName() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination address -type PatternFlowIpv4Dst struct { +// Dont fragment flag If the dont_fragment flag is set and fragmentation is required +// to route the packet then the packet is dropped. +type PatternFlowIpv4DontFragment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Dst) Reset() { - *x = PatternFlowIpv4Dst{} +func (x *PatternFlowIpv4DontFragment) Reset() { + *x = PatternFlowIpv4DontFragment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[379] + mi := &file_otg_proto_msgTypes[378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst) String() string { +func (x *PatternFlowIpv4DontFragment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment) ProtoMessage() {} -func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[379] +func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[378] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50270,47 +50341,47 @@ func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379} +// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378} } -func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { +func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Dst_Choice_unspecified + return PatternFlowIpv4DontFragment_Choice_unspecified } -func (x *PatternFlowIpv4Dst) GetValue() string { +func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Dst) GetValues() []string { +func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { +func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { if x != nil { return x.MetricTags } @@ -50318,7 +50389,7 @@ func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { } // integer counter pattern -type PatternFlowIpv4PriorityRawCounter struct { +type PatternFlowIpv4MoreFragmentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50334,23 +50405,23 @@ type PatternFlowIpv4PriorityRawCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4PriorityRawCounter) Reset() { - *x = PatternFlowIpv4PriorityRawCounter{} +func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { + *x = PatternFlowIpv4MoreFragmentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[380] + mi := &file_otg_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawCounter) String() string { +func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[380] +func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[379] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50361,26 +50432,26 @@ func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{380} +// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{379} } -func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50390,7 +50461,7 @@ func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4PriorityRawMetricTag struct { +type PatternFlowIpv4MoreFragmentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50404,27 +50475,27 @@ type PatternFlowIpv4PriorityRawMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { - *x = PatternFlowIpv4PriorityRawMetricTag{} +func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { + *x = PatternFlowIpv4MoreFragmentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[381] + mi := &file_otg_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[381] +func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50435,41 +50506,41 @@ func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381} +// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{380} } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Raw priority -type PatternFlowIpv4PriorityRaw struct { +// More fragments flag +type PatternFlowIpv4MoreFragments struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -50477,32 +50548,32 @@ type PatternFlowIpv4PriorityRaw struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4PriorityRaw) Reset() { - *x = PatternFlowIpv4PriorityRaw{} +func (x *PatternFlowIpv4MoreFragments) Reset() { + *x = PatternFlowIpv4MoreFragments{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[382] + mi := &file_otg_proto_msgTypes[381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw) String() string { +func (x *PatternFlowIpv4MoreFragments) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[382] +func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[381] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50513,47 +50584,47 @@ func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382} +// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381} } -func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { +func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4PriorityRaw_Choice_unspecified + return PatternFlowIpv4MoreFragments_Choice_unspecified } -func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { +func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { if x != nil { return x.MetricTags } @@ -50561,7 +50632,7 @@ func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityR } // integer counter pattern -type PatternFlowIpv4DscpPhbCounter struct { +type PatternFlowIpv4FragmentOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50577,23 +50648,23 @@ type PatternFlowIpv4DscpPhbCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpPhbCounter) Reset() { - *x = PatternFlowIpv4DscpPhbCounter{} +func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { + *x = PatternFlowIpv4FragmentOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[383] + mi := &file_otg_proto_msgTypes[382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbCounter) String() string { +func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[383] +func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[382] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50604,26 +50675,26 @@ func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{383} +// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{382} } -func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50633,7 +50704,7 @@ func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DscpPhbMetricTag struct { +type PatternFlowIpv4FragmentOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50647,27 +50718,27 @@ type PatternFlowIpv4DscpPhbMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 6 + // default = 5 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { - *x = PatternFlowIpv4DscpPhbMetricTag{} +func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { + *x = PatternFlowIpv4FragmentOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[384] + mi := &file_otg_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[384] +func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[383] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50678,41 +50749,41 @@ func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384} +// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{383} } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Per hop behavior -type PatternFlowIpv4DscpPhb struct { +// Fragment offset +type PatternFlowIpv4FragmentOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -50720,32 +50791,32 @@ type PatternFlowIpv4DscpPhb struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpPhb) Reset() { - *x = PatternFlowIpv4DscpPhb{} +func (x *PatternFlowIpv4FragmentOffset) Reset() { + *x = PatternFlowIpv4FragmentOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[385] + mi := &file_otg_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb) String() string { +func (x *PatternFlowIpv4FragmentOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[385] +func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[384] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50756,47 +50827,47 @@ func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385} +// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384} } -func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { +func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpPhb_Choice_unspecified + return PatternFlowIpv4FragmentOffset_Choice_unspecified } -func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { +func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { if x != nil { return x.MetricTags } @@ -50804,13 +50875,13 @@ func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetric } // integer counter pattern -type PatternFlowIpv4DscpEcnCounter struct { +type PatternFlowIpv4TimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -50820,23 +50891,23 @@ type PatternFlowIpv4DscpEcnCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpEcnCounter) Reset() { - *x = PatternFlowIpv4DscpEcnCounter{} +func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { + *x = PatternFlowIpv4TimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[386] + mi := &file_otg_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnCounter) String() string { +func (x *PatternFlowIpv4TimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[386] +func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[385] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50847,26 +50918,26 @@ func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{386} +// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{385} } -func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50876,7 +50947,7 @@ func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DscpEcnMetricTag struct { +type PatternFlowIpv4TimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50890,27 +50961,27 @@ type PatternFlowIpv4DscpEcnMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 2 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { - *x = PatternFlowIpv4DscpEcnMetricTag{} +func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { + *x = PatternFlowIpv4TimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[387] + mi := &file_otg_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[387] +func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[386] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50921,74 +50992,74 @@ func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387} +// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{386} } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification -type PatternFlowIpv4DscpEcn struct { +// Time to live +type PatternFlowIpv4TimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpEcn) Reset() { - *x = PatternFlowIpv4DscpEcn{} +func (x *PatternFlowIpv4TimeToLive) Reset() { + *x = PatternFlowIpv4TimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[388] + mi := &file_otg_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn) String() string { +func (x *PatternFlowIpv4TimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[388] +func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50999,47 +51070,47 @@ func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388} +// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387} } -func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { +func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpEcn_Choice_unspecified + return PatternFlowIpv4TimeToLive_Choice_unspecified } -func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { +func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { if x != nil { return x.MetricTags } @@ -51047,13 +51118,13 @@ func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetric } // integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter struct { +type PatternFlowIpv4ProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 61 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -51063,23 +51134,23 @@ type PatternFlowIpv4TosPrecedenceCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { - *x = PatternFlowIpv4TosPrecedenceCounter{} +func (x *PatternFlowIpv4ProtocolCounter) Reset() { + *x = PatternFlowIpv4ProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[389] + mi := &file_otg_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { +func (x *PatternFlowIpv4ProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[389] +func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51090,26 +51161,26 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{389} +// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{388} } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51119,7 +51190,7 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosPrecedenceMetricTag struct { +type PatternFlowIpv4ProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51133,27 +51204,27 @@ type PatternFlowIpv4TosPrecedenceMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { - *x = PatternFlowIpv4TosPrecedenceMetricTag{} +func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { + *x = PatternFlowIpv4ProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[390] + mi := &file_otg_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { +func (x *PatternFlowIpv4ProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[390] +func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[389] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51164,74 +51235,79 @@ func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390} +// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{389} } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { +func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Precedence -type PatternFlowIpv4TosPrecedence struct { +// Protocol, default is 61 any host internal protocol +type PatternFlowIpv4Protocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 61 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [61] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 61 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosPrecedence) Reset() { - *x = PatternFlowIpv4TosPrecedence{} +func (x *PatternFlowIpv4Protocol) Reset() { + *x = PatternFlowIpv4Protocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[391] + mi := &file_otg_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence) String() string { +func (x *PatternFlowIpv4Protocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} +func (*PatternFlowIpv4Protocol) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[391] +func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[390] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51242,72 +51318,148 @@ func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391} +// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390} } -func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { +func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosPrecedence_Choice_unspecified + return PatternFlowIpv4Protocol_Choice_unspecified } -func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { +func (x *PatternFlowIpv4Protocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { +func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { +func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIpv4TosDelayCounter struct { +// Header checksum +type PatternFlowIpv4HeaderChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIpv4HeaderChecksum) Reset() { + *x = PatternFlowIpv4HeaderChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[391] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4HeaderChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} + +func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[391] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391} +} + +func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIpv4HeaderChecksum_Choice_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIpv4HeaderChecksum_Generated_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// ipv4 counter pattern +type PatternFlowIpv4SrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosDelayCounter) Reset() { - *x = PatternFlowIpv4TosDelayCounter{} +func (x *PatternFlowIpv4SrcCounter) Reset() { + *x = PatternFlowIpv4SrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51315,13 +51467,13 @@ func (x *PatternFlowIpv4TosDelayCounter) Reset() { } } -func (x *PatternFlowIpv4TosDelayCounter) String() string { +func (x *PatternFlowIpv4SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} +func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[392] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51333,26 +51485,26 @@ func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{392} } -func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51362,7 +51514,7 @@ func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosDelayMetricTag struct { +type PatternFlowIpv4SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51376,12 +51528,12 @@ type PatternFlowIpv4TosDelayMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { - *x = PatternFlowIpv4TosDelayMetricTag{} +func (x *PatternFlowIpv4SrcMetricTag) Reset() { + *x = PatternFlowIpv4SrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51389,13 +51541,13 @@ func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosDelayMetricTag) String() string { +func (x *PatternFlowIpv4SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[393] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51407,59 +51559,59 @@ func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{393} } -func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { +func (x *PatternFlowIpv4SrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Delay -type PatternFlowIpv4TosDelay struct { +// Source address +type PatternFlowIpv4Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosDelay) Reset() { - *x = PatternFlowIpv4TosDelay{} +func (x *PatternFlowIpv4Src) Reset() { + *x = PatternFlowIpv4Src{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51467,13 +51619,13 @@ func (x *PatternFlowIpv4TosDelay) Reset() { } } -func (x *PatternFlowIpv4TosDelay) String() string { +func (x *PatternFlowIpv4Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay) ProtoMessage() {} +func (*PatternFlowIpv4Src) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[394] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51485,72 +51637,72 @@ func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{394} } -func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { +func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosDelay_Choice_unspecified + return PatternFlowIpv4Src_Choice_unspecified } -func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { +func (x *PatternFlowIpv4Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { +func (x *PatternFlowIpv4Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { +func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIpv4TosThroughputCounter struct { +// ipv4 counter pattern +type PatternFlowIpv4DstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosThroughputCounter) Reset() { - *x = PatternFlowIpv4TosThroughputCounter{} +func (x *PatternFlowIpv4DstCounter) Reset() { + *x = PatternFlowIpv4DstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51558,13 +51710,13 @@ func (x *PatternFlowIpv4TosThroughputCounter) Reset() { } } -func (x *PatternFlowIpv4TosThroughputCounter) String() string { +func (x *PatternFlowIpv4DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} +func (*PatternFlowIpv4DstCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[395] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51576,26 +51728,26 @@ func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{395} } -func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51605,7 +51757,7 @@ func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosThroughputMetricTag struct { +type PatternFlowIpv4DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51619,12 +51771,12 @@ type PatternFlowIpv4TosThroughputMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { - *x = PatternFlowIpv4TosThroughputMetricTag{} +func (x *PatternFlowIpv4DstMetricTag) Reset() { + *x = PatternFlowIpv4DstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51632,13 +51784,13 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { +func (x *PatternFlowIpv4DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[396] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51650,59 +51802,59 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{396} } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { +func (x *PatternFlowIpv4DstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Throughput -type PatternFlowIpv4TosThroughput struct { +// Destination address +type PatternFlowIpv4Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosThroughput) Reset() { - *x = PatternFlowIpv4TosThroughput{} +func (x *PatternFlowIpv4Dst) Reset() { + *x = PatternFlowIpv4Dst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51710,13 +51862,13 @@ func (x *PatternFlowIpv4TosThroughput) Reset() { } } -func (x *PatternFlowIpv4TosThroughput) String() string { +func (x *PatternFlowIpv4Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} +func (*PatternFlowIpv4Dst) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[397] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51728,47 +51880,47 @@ func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{397} } -func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { +func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosThroughput_Choice_unspecified + return PatternFlowIpv4Dst_Choice_unspecified } -func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { +func (x *PatternFlowIpv4Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { +func (x *PatternFlowIpv4Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { +func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { if x != nil { return x.MetricTags } @@ -51776,7 +51928,7 @@ func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThro } // integer counter pattern -type PatternFlowIpv4TosReliabilityCounter struct { +type PatternFlowIpv4PriorityRawCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51792,8 +51944,8 @@ type PatternFlowIpv4TosReliabilityCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { - *x = PatternFlowIpv4TosReliabilityCounter{} +func (x *PatternFlowIpv4PriorityRawCounter) Reset() { + *x = PatternFlowIpv4PriorityRawCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51801,13 +51953,13 @@ func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { } } -func (x *PatternFlowIpv4TosReliabilityCounter) String() string { +func (x *PatternFlowIpv4PriorityRawCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[398] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51819,26 +51971,26 @@ func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{398} } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51848,7 +52000,7 @@ func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosReliabilityMetricTag struct { +type PatternFlowIpv4PriorityRawMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51862,12 +52014,12 @@ type PatternFlowIpv4TosReliabilityMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { - *x = PatternFlowIpv4TosReliabilityMetricTag{} +func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { + *x = PatternFlowIpv4PriorityRawMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51875,13 +52027,13 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[399] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51893,41 +52045,41 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{399} } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reliability -type PatternFlowIpv4TosReliability struct { +// Raw priority +type PatternFlowIpv4PriorityRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -51935,17 +52087,17 @@ type PatternFlowIpv4TosReliability struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosReliability) Reset() { - *x = PatternFlowIpv4TosReliability{} +func (x *PatternFlowIpv4PriorityRaw) Reset() { + *x = PatternFlowIpv4PriorityRaw{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51953,13 +52105,13 @@ func (x *PatternFlowIpv4TosReliability) Reset() { } } -func (x *PatternFlowIpv4TosReliability) String() string { +func (x *PatternFlowIpv4PriorityRaw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[400] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51971,47 +52123,47 @@ func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{400} } -func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { +func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosReliability_Choice_unspecified + return PatternFlowIpv4PriorityRaw_Choice_unspecified } -func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { +func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { if x != nil { return x.MetricTags } @@ -52019,7 +52171,7 @@ func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosRel } // integer counter pattern -type PatternFlowIpv4TosMonetaryCounter struct { +type PatternFlowIpv4DscpPhbCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52035,8 +52187,8 @@ type PatternFlowIpv4TosMonetaryCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { - *x = PatternFlowIpv4TosMonetaryCounter{} +func (x *PatternFlowIpv4DscpPhbCounter) Reset() { + *x = PatternFlowIpv4DscpPhbCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52044,13 +52196,13 @@ func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { } } -func (x *PatternFlowIpv4TosMonetaryCounter) String() string { +func (x *PatternFlowIpv4DscpPhbCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[401] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52062,26 +52214,26 @@ func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{401} } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52091,7 +52243,7 @@ func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosMonetaryMetricTag struct { +type PatternFlowIpv4DscpPhbMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52105,12 +52257,12 @@ type PatternFlowIpv4TosMonetaryMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 6 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { - *x = PatternFlowIpv4TosMonetaryMetricTag{} +func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { + *x = PatternFlowIpv4DscpPhbMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52118,13 +52270,13 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[402] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52136,41 +52288,41 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{402} } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Monetary -type PatternFlowIpv4TosMonetary struct { +// Per hop behavior +type PatternFlowIpv4DscpPhb struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52178,17 +52330,17 @@ type PatternFlowIpv4TosMonetary struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosMonetary) Reset() { - *x = PatternFlowIpv4TosMonetary{} +func (x *PatternFlowIpv4DscpPhb) Reset() { + *x = PatternFlowIpv4DscpPhb{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52196,13 +52348,13 @@ func (x *PatternFlowIpv4TosMonetary) Reset() { } } -func (x *PatternFlowIpv4TosMonetary) String() string { +func (x *PatternFlowIpv4DscpPhb) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[403] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52214,47 +52366,47 @@ func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{403} } -func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { +func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosMonetary_Choice_unspecified + return PatternFlowIpv4DscpPhb_Choice_unspecified } -func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { +func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { if x != nil { return x.MetricTags } @@ -52262,7 +52414,7 @@ func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMoneta } // integer counter pattern -type PatternFlowIpv4TosUnusedCounter struct { +type PatternFlowIpv4DscpEcnCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52278,8 +52430,8 @@ type PatternFlowIpv4TosUnusedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosUnusedCounter) Reset() { - *x = PatternFlowIpv4TosUnusedCounter{} +func (x *PatternFlowIpv4DscpEcnCounter) Reset() { + *x = PatternFlowIpv4DscpEcnCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52287,13 +52439,13 @@ func (x *PatternFlowIpv4TosUnusedCounter) Reset() { } } -func (x *PatternFlowIpv4TosUnusedCounter) String() string { +func (x *PatternFlowIpv4DscpEcnCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[404] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52305,26 +52457,26 @@ func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{404} } -func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52334,7 +52486,7 @@ func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosUnusedMetricTag struct { +type PatternFlowIpv4DscpEcnMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52348,12 +52500,12 @@ type PatternFlowIpv4TosUnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 2 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { - *x = PatternFlowIpv4TosUnusedMetricTag{} +func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { + *x = PatternFlowIpv4DscpEcnMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52361,13 +52513,13 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[405] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52379,41 +52531,41 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{405} } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIpv4TosUnused struct { +// Explicit congestion notification +type PatternFlowIpv4DscpEcn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52421,17 +52573,17 @@ type PatternFlowIpv4TosUnused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosUnused) Reset() { - *x = PatternFlowIpv4TosUnused{} +func (x *PatternFlowIpv4DscpEcn) Reset() { + *x = PatternFlowIpv4DscpEcn{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52439,13 +52591,13 @@ func (x *PatternFlowIpv4TosUnused) Reset() { } } -func (x *PatternFlowIpv4TosUnused) String() string { +func (x *PatternFlowIpv4DscpEcn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[406] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52457,47 +52609,47 @@ func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{406} } -func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { +func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosUnused_Choice_unspecified + return PatternFlowIpv4DscpEcn_Choice_unspecified } -func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { +func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { if x != nil { return x.MetricTags } @@ -52505,13 +52657,13 @@ func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMe } // integer counter pattern -type PatternFlowIpv6VersionCounter struct { +type PatternFlowIpv4TosPrecedenceCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -52521,8 +52673,8 @@ type PatternFlowIpv6VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6VersionCounter) Reset() { - *x = PatternFlowIpv6VersionCounter{} +func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { + *x = PatternFlowIpv4TosPrecedenceCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52530,13 +52682,13 @@ func (x *PatternFlowIpv6VersionCounter) Reset() { } } -func (x *PatternFlowIpv6VersionCounter) String() string { +func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} -func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[407] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52548,26 +52700,26 @@ func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{407} } -func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52577,7 +52729,7 @@ func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6VersionMetricTag struct { +type PatternFlowIpv4TosPrecedenceMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52591,12 +52743,12 @@ type PatternFlowIpv6VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6VersionMetricTag) Reset() { - *x = PatternFlowIpv6VersionMetricTag{} +func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { + *x = PatternFlowIpv4TosPrecedenceMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52604,13 +52756,13 @@ func (x *PatternFlowIpv6VersionMetricTag) Reset() { } } -func (x *PatternFlowIpv6VersionMetricTag) String() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[408] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52622,59 +52774,59 @@ func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{408} } -func (x *PatternFlowIpv6VersionMetricTag) GetName() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIpv6Version struct { +// Precedence +type PatternFlowIpv4TosPrecedence struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Version) Reset() { - *x = PatternFlowIpv6Version{} +func (x *PatternFlowIpv4TosPrecedence) Reset() { + *x = PatternFlowIpv4TosPrecedence{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52682,13 +52834,13 @@ func (x *PatternFlowIpv6Version) Reset() { } } -func (x *PatternFlowIpv6Version) String() string { +func (x *PatternFlowIpv4TosPrecedence) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} -func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[409] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52700,47 +52852,47 @@ func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{409} } -func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { +func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Version_Choice_unspecified + return PatternFlowIpv4TosPrecedence_Choice_unspecified } -func (x *PatternFlowIpv6Version) GetValue() uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6Version) GetValues() []uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { +func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { if x != nil { return x.MetricTags } @@ -52748,7 +52900,7 @@ func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetric } // integer counter pattern -type PatternFlowIpv6TrafficClassCounter struct { +type PatternFlowIpv4TosDelayCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52764,8 +52916,8 @@ type PatternFlowIpv6TrafficClassCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6TrafficClassCounter) Reset() { - *x = PatternFlowIpv6TrafficClassCounter{} +func (x *PatternFlowIpv4TosDelayCounter) Reset() { + *x = PatternFlowIpv4TosDelayCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52773,13 +52925,13 @@ func (x *PatternFlowIpv6TrafficClassCounter) Reset() { } } -func (x *PatternFlowIpv6TrafficClassCounter) String() string { +func (x *PatternFlowIpv4TosDelayCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[410] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52791,26 +52943,26 @@ func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{410} } -func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52820,7 +52972,7 @@ func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6TrafficClassMetricTag struct { +type PatternFlowIpv4TosDelayMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52834,12 +52986,12 @@ type PatternFlowIpv6TrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { - *x = PatternFlowIpv6TrafficClassMetricTag{} +func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { + *x = PatternFlowIpv4TosDelayMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52847,13 +52999,13 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { } } -func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { +func (x *PatternFlowIpv4TosDelayMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[411] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52865,41 +53017,41 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{411} } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { +func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowIpv6TrafficClass struct { +// Delay +type PatternFlowIpv4TosDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52907,17 +53059,17 @@ type PatternFlowIpv6TrafficClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6TrafficClass) Reset() { - *x = PatternFlowIpv6TrafficClass{} +func (x *PatternFlowIpv4TosDelay) Reset() { + *x = PatternFlowIpv4TosDelay{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52925,13 +53077,13 @@ func (x *PatternFlowIpv6TrafficClass) Reset() { } } -func (x *PatternFlowIpv6TrafficClass) String() string { +func (x *PatternFlowIpv4TosDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[412] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52943,47 +53095,47 @@ func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{412} } -func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { +func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6TrafficClass_Choice_unspecified + return PatternFlowIpv4TosDelay_Choice_unspecified } -func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { +func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { +func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { +func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { if x != nil { return x.MetricTags } @@ -52991,7 +53143,7 @@ func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficC } // integer counter pattern -type PatternFlowIpv6FlowLabelCounter struct { +type PatternFlowIpv4TosThroughputCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53007,8 +53159,8 @@ type PatternFlowIpv6FlowLabelCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6FlowLabelCounter) Reset() { - *x = PatternFlowIpv6FlowLabelCounter{} +func (x *PatternFlowIpv4TosThroughputCounter) Reset() { + *x = PatternFlowIpv4TosThroughputCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53016,13 +53168,13 @@ func (x *PatternFlowIpv6FlowLabelCounter) Reset() { } } -func (x *PatternFlowIpv6FlowLabelCounter) String() string { +func (x *PatternFlowIpv4TosThroughputCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[413] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53034,26 +53186,26 @@ func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{413} } -func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53063,7 +53215,7 @@ func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6FlowLabelMetricTag struct { +type PatternFlowIpv4TosThroughputMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53077,12 +53229,12 @@ type PatternFlowIpv6FlowLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { - *x = PatternFlowIpv6FlowLabelMetricTag{} +func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { + *x = PatternFlowIpv4TosThroughputMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53090,13 +53242,13 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { } } -func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[414] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53108,41 +53260,41 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{414} } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Flow label -type PatternFlowIpv6FlowLabel struct { +// Throughput +type PatternFlowIpv4TosThroughput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -53150,17 +53302,17 @@ type PatternFlowIpv6FlowLabel struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6FlowLabel) Reset() { - *x = PatternFlowIpv6FlowLabel{} +func (x *PatternFlowIpv4TosThroughput) Reset() { + *x = PatternFlowIpv4TosThroughput{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53168,13 +53320,13 @@ func (x *PatternFlowIpv6FlowLabel) Reset() { } } -func (x *PatternFlowIpv6FlowLabel) String() string { +func (x *PatternFlowIpv4TosThroughput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[415] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53186,47 +53338,47 @@ func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{415} } -func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { +func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6FlowLabel_Choice_unspecified + return PatternFlowIpv4TosThroughput_Choice_unspecified } -func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { +func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { if x != nil { return x.MetricTags } @@ -53234,7 +53386,7 @@ func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMe } // integer counter pattern -type PatternFlowIpv6PayloadLengthCounter struct { +type PatternFlowIpv4TosReliabilityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53250,8 +53402,8 @@ type PatternFlowIpv6PayloadLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { - *x = PatternFlowIpv6PayloadLengthCounter{} +func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { + *x = PatternFlowIpv4TosReliabilityCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53259,13 +53411,13 @@ func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { } } -func (x *PatternFlowIpv6PayloadLengthCounter) String() string { +func (x *PatternFlowIpv4TosReliabilityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[416] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53277,26 +53429,26 @@ func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{416} } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53306,7 +53458,7 @@ func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6PayloadLengthMetricTag struct { +type PatternFlowIpv4TosReliabilityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53320,12 +53472,12 @@ type PatternFlowIpv6PayloadLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { - *x = PatternFlowIpv6PayloadLengthMetricTag{} +func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { + *x = PatternFlowIpv4TosReliabilityMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53333,13 +53485,13 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[417] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53351,64 +53503,59 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{417} } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Payload length -type PatternFlowIpv6PayloadLength struct { +// Reliability +type PatternFlowIpv4TosReliability struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6PayloadLength) Reset() { - *x = PatternFlowIpv6PayloadLength{} +func (x *PatternFlowIpv4TosReliability) Reset() { + *x = PatternFlowIpv4TosReliability{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53416,13 +53563,13 @@ func (x *PatternFlowIpv6PayloadLength) Reset() { } } -func (x *PatternFlowIpv6PayloadLength) String() string { +func (x *PatternFlowIpv4TosReliability) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[418] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53434,54 +53581,47 @@ func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{418} } -func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { +func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6PayloadLength_Choice_unspecified + return PatternFlowIpv4TosReliability_Choice_unspecified } -func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { +func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { +func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { +func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { if x != nil { return x.MetricTags } @@ -53489,13 +53629,13 @@ func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6Payload } // integer counter pattern -type PatternFlowIpv6NextHeaderCounter struct { +type PatternFlowIpv4TosMonetaryCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 59 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -53505,8 +53645,8 @@ type PatternFlowIpv6NextHeaderCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6NextHeaderCounter) Reset() { - *x = PatternFlowIpv6NextHeaderCounter{} +func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { + *x = PatternFlowIpv4TosMonetaryCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53514,13 +53654,13 @@ func (x *PatternFlowIpv6NextHeaderCounter) Reset() { } } -func (x *PatternFlowIpv6NextHeaderCounter) String() string { +func (x *PatternFlowIpv4TosMonetaryCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[419] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53532,26 +53672,26 @@ func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{419} } -func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53561,7 +53701,7 @@ func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6NextHeaderMetricTag struct { +type PatternFlowIpv4TosMonetaryMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53575,12 +53715,12 @@ type PatternFlowIpv6NextHeaderMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { - *x = PatternFlowIpv6NextHeaderMetricTag{} +func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { + *x = PatternFlowIpv4TosMonetaryMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53588,13 +53728,13 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { } } -func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[420] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53606,64 +53746,59 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{420} } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next header -type PatternFlowIpv6NextHeader struct { +// Monetary +type PatternFlowIpv4TosMonetary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 59 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [59] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 59 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6NextHeader) Reset() { - *x = PatternFlowIpv6NextHeader{} +func (x *PatternFlowIpv4TosMonetary) Reset() { + *x = PatternFlowIpv4TosMonetary{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53671,13 +53806,13 @@ func (x *PatternFlowIpv6NextHeader) Reset() { } } -func (x *PatternFlowIpv6NextHeader) String() string { +func (x *PatternFlowIpv4TosMonetary) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53689,54 +53824,47 @@ func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{421} } -func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { +func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6NextHeader_Choice_unspecified + return PatternFlowIpv4TosMonetary_Choice_unspecified } -func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { +func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { if x != nil { return x.MetricTags } @@ -53744,13 +53872,13 @@ func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeader } // integer counter pattern -type PatternFlowIpv6HopLimitCounter struct { +type PatternFlowIpv4TosUnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -53760,8 +53888,8 @@ type PatternFlowIpv6HopLimitCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6HopLimitCounter) Reset() { - *x = PatternFlowIpv6HopLimitCounter{} +func (x *PatternFlowIpv4TosUnusedCounter) Reset() { + *x = PatternFlowIpv4TosUnusedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53769,13 +53897,13 @@ func (x *PatternFlowIpv6HopLimitCounter) Reset() { } } -func (x *PatternFlowIpv6HopLimitCounter) String() string { +func (x *PatternFlowIpv4TosUnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[422] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53787,26 +53915,26 @@ func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{422} } -func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53816,7 +53944,7 @@ func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6HopLimitMetricTag struct { +type PatternFlowIpv4TosUnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53830,12 +53958,12 @@ type PatternFlowIpv6HopLimitMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { - *x = PatternFlowIpv6HopLimitMetricTag{} +func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { + *x = PatternFlowIpv4TosUnusedMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53843,13 +53971,13 @@ func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { } } -func (x *PatternFlowIpv6HopLimitMetricTag) String() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[423] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53861,59 +53989,59 @@ func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{423} } -func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Hop limit -type PatternFlowIpv6HopLimit struct { +// Unused +type PatternFlowIpv4TosUnused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6HopLimit) Reset() { - *x = PatternFlowIpv6HopLimit{} +func (x *PatternFlowIpv4TosUnused) Reset() { + *x = PatternFlowIpv4TosUnused{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53921,13 +54049,13 @@ func (x *PatternFlowIpv6HopLimit) Reset() { } } -func (x *PatternFlowIpv6HopLimit) String() string { +func (x *PatternFlowIpv4TosUnused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[424] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53939,72 +54067,72 @@ func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{424} } -func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { +func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6HopLimit_Choice_unspecified + return PatternFlowIpv4TosUnused_Choice_unspecified } -func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { +func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { +func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { +func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6SrcCounter struct { +// integer counter pattern +type PatternFlowIpv6VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 6 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6SrcCounter) Reset() { - *x = PatternFlowIpv6SrcCounter{} +func (x *PatternFlowIpv6VersionCounter) Reset() { + *x = PatternFlowIpv6VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54012,13 +54140,13 @@ func (x *PatternFlowIpv6SrcCounter) Reset() { } } -func (x *PatternFlowIpv6SrcCounter) String() string { +func (x *PatternFlowIpv6VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} +func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} -func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[425] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54030,26 +54158,26 @@ func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{425} } -func (x *PatternFlowIpv6SrcCounter) GetStart() string { +func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv6SrcCounter) GetStep() string { +func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54059,7 +54187,7 @@ func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6SrcMetricTag struct { +type PatternFlowIpv6VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54073,12 +54201,12 @@ type PatternFlowIpv6SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6SrcMetricTag) Reset() { - *x = PatternFlowIpv6SrcMetricTag{} +func (x *PatternFlowIpv6VersionMetricTag) Reset() { + *x = PatternFlowIpv6VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54086,13 +54214,13 @@ func (x *PatternFlowIpv6SrcMetricTag) Reset() { } } -func (x *PatternFlowIpv6SrcMetricTag) String() string { +func (x *PatternFlowIpv6VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[426] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54104,59 +54232,59 @@ func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{426} } -func (x *PatternFlowIpv6SrcMetricTag) GetName() string { +func (x *PatternFlowIpv6VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source address -type PatternFlowIpv6Src struct { +// Version number +type PatternFlowIpv6Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 6 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [6] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Src) Reset() { - *x = PatternFlowIpv6Src{} +func (x *PatternFlowIpv6Version) Reset() { + *x = PatternFlowIpv6Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54164,13 +54292,13 @@ func (x *PatternFlowIpv6Src) Reset() { } } -func (x *PatternFlowIpv6Src) String() string { +func (x *PatternFlowIpv6Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src) ProtoMessage() {} +func (*PatternFlowIpv6Version) ProtoMessage() {} -func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[427] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54182,72 +54310,72 @@ func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{427} } -func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { +func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Src_Choice_unspecified + return PatternFlowIpv6Version_Choice_unspecified } -func (x *PatternFlowIpv6Src) GetValue() string { +func (x *PatternFlowIpv6Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv6Src) GetValues() []string { +func (x *PatternFlowIpv6Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { +func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6DstCounter struct { +// integer counter pattern +type PatternFlowIpv6TrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6DstCounter) Reset() { - *x = PatternFlowIpv6DstCounter{} +func (x *PatternFlowIpv6TrafficClassCounter) Reset() { + *x = PatternFlowIpv6TrafficClassCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54255,13 +54383,13 @@ func (x *PatternFlowIpv6DstCounter) Reset() { } } -func (x *PatternFlowIpv6DstCounter) String() string { +func (x *PatternFlowIpv6TrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstCounter) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} -func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[428] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54273,26 +54401,26 @@ func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{428} } -func (x *PatternFlowIpv6DstCounter) GetStart() string { +func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv6DstCounter) GetStep() string { +func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { +func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54302,7 +54430,7 @@ func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6DstMetricTag struct { +type PatternFlowIpv6TrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54316,12 +54444,12 @@ type PatternFlowIpv6DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6DstMetricTag) Reset() { - *x = PatternFlowIpv6DstMetricTag{} +func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { + *x = PatternFlowIpv6TrafficClassMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54329,13 +54457,13 @@ func (x *PatternFlowIpv6DstMetricTag) Reset() { } } -func (x *PatternFlowIpv6DstMetricTag) String() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[429] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54347,59 +54475,59 @@ func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{429} } -func (x *PatternFlowIpv6DstMetricTag) GetName() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination address -type PatternFlowIpv6Dst struct { +// Traffic class +type PatternFlowIpv6TrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Dst) Reset() { - *x = PatternFlowIpv6Dst{} +func (x *PatternFlowIpv6TrafficClass) Reset() { + *x = PatternFlowIpv6TrafficClass{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54407,13 +54535,13 @@ func (x *PatternFlowIpv6Dst) Reset() { } } -func (x *PatternFlowIpv6Dst) String() string { +func (x *PatternFlowIpv6TrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} -func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[430] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54425,72 +54553,72 @@ func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{430} } -func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { +func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Dst_Choice_unspecified + return PatternFlowIpv6TrafficClass_Choice_unspecified } -func (x *PatternFlowIpv6Dst) GetValue() string { +func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv6Dst) GetValues() []string { +func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { +func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowPfcPauseDstCounter struct { +// integer counter pattern +type PatternFlowIpv6FlowLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseDstCounter) Reset() { - *x = PatternFlowPfcPauseDstCounter{} +func (x *PatternFlowIpv6FlowLabelCounter) Reset() { + *x = PatternFlowIpv6FlowLabelCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54498,13 +54626,13 @@ func (x *PatternFlowPfcPauseDstCounter) Reset() { } } -func (x *PatternFlowPfcPauseDstCounter) String() string { +func (x *PatternFlowIpv6FlowLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[431] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54516,26 +54644,26 @@ func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{431} } -func (x *PatternFlowPfcPauseDstCounter) GetStart() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetStep() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54545,7 +54673,7 @@ func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseDstMetricTag struct { +type PatternFlowIpv6FlowLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54559,12 +54687,12 @@ type PatternFlowPfcPauseDstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 20 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseDstMetricTag) Reset() { - *x = PatternFlowPfcPauseDstMetricTag{} +func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { + *x = PatternFlowIpv6FlowLabelMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54572,13 +54700,13 @@ func (x *PatternFlowPfcPauseDstMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseDstMetricTag) String() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[432] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54590,59 +54718,59 @@ func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{432} } -func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination MAC address -type PatternFlowPfcPauseDst struct { +// Flow label +type PatternFlowIpv6FlowLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseDst) Reset() { - *x = PatternFlowPfcPauseDst{} +func (x *PatternFlowIpv6FlowLabel) Reset() { + *x = PatternFlowIpv6FlowLabel{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54650,13 +54778,13 @@ func (x *PatternFlowPfcPauseDst) Reset() { } } -func (x *PatternFlowPfcPauseDst) String() string { +func (x *PatternFlowIpv6FlowLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[433] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54668,72 +54796,72 @@ func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{433} } -func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { +func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseDst_Choice_unspecified + return PatternFlowIpv6FlowLabel_Choice_unspecified } -func (x *PatternFlowPfcPauseDst) GetValue() string { +func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseDst) GetValues() []string { +func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { +func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowPfcPauseSrcCounter struct { +// integer counter pattern +type PatternFlowIpv6PayloadLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseSrcCounter) Reset() { - *x = PatternFlowPfcPauseSrcCounter{} +func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { + *x = PatternFlowIpv6PayloadLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54741,13 +54869,13 @@ func (x *PatternFlowPfcPauseSrcCounter) Reset() { } } -func (x *PatternFlowPfcPauseSrcCounter) String() string { +func (x *PatternFlowIpv6PayloadLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[434] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54759,26 +54887,26 @@ func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{434} } -func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54788,7 +54916,7 @@ func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseSrcMetricTag struct { +type PatternFlowIpv6PayloadLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54802,12 +54930,12 @@ type PatternFlowPfcPauseSrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { - *x = PatternFlowPfcPauseSrcMetricTag{} +func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { + *x = PatternFlowIpv6PayloadLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54815,13 +54943,13 @@ func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseSrcMetricTag) String() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[435] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54833,59 +54961,64 @@ func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{435} } -func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source MAC address -type PatternFlowPfcPauseSrc struct { +// Payload length +type PatternFlowIpv6PayloadLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseSrc) Reset() { - *x = PatternFlowPfcPauseSrc{} +func (x *PatternFlowIpv6PayloadLength) Reset() { + *x = PatternFlowIpv6PayloadLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54893,13 +55026,13 @@ func (x *PatternFlowPfcPauseSrc) Reset() { } } -func (x *PatternFlowPfcPauseSrc) String() string { +func (x *PatternFlowIpv6PayloadLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[436] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54911,47 +55044,54 @@ func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{436} } -func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { +func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseSrc_Choice_unspecified + return PatternFlowIpv6PayloadLength_Choice_unspecified } -func (x *PatternFlowPfcPauseSrc) GetValue() string { +func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrc) GetValues() []string { +func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { +func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { if x != nil { return x.MetricTags } @@ -54959,13 +55099,13 @@ func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetric } // integer counter pattern -type PatternFlowPfcPauseEtherTypeCounter struct { +type PatternFlowIpv6NextHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 59 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -54975,8 +55115,8 @@ type PatternFlowPfcPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { - *x = PatternFlowPfcPauseEtherTypeCounter{} +func (x *PatternFlowIpv6NextHeaderCounter) Reset() { + *x = PatternFlowIpv6NextHeaderCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54984,13 +55124,13 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { } } -func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { +func (x *PatternFlowIpv6NextHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[437] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55002,26 +55142,26 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{437} } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55031,7 +55171,7 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseEtherTypeMetricTag struct { +type PatternFlowIpv6NextHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55045,12 +55185,12 @@ type PatternFlowPfcPauseEtherTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowPfcPauseEtherTypeMetricTag{} +func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { + *x = PatternFlowIpv6NextHeaderMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[438] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55058,13 +55198,13 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[438] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55076,59 +55216,64 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{438} } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowPfcPauseEtherType struct { +// Next header +type PatternFlowIpv6NextHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 59 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [59] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 59 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseEtherType) Reset() { - *x = PatternFlowPfcPauseEtherType{} +func (x *PatternFlowIpv6NextHeader) Reset() { + *x = PatternFlowIpv6NextHeader{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[439] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55136,13 +55281,13 @@ func (x *PatternFlowPfcPauseEtherType) Reset() { } } -func (x *PatternFlowPfcPauseEtherType) String() string { +func (x *PatternFlowIpv6NextHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[439] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55154,47 +55299,54 @@ func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{439} } -func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { +func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseEtherType_Choice_unspecified + return PatternFlowIpv6NextHeader_Choice_unspecified } -func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { +func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { +func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { if x != nil { return x.MetricTags } @@ -55202,13 +55354,13 @@ func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEth } // integer counter pattern -type PatternFlowPfcPauseControlOpCodeCounter struct { +type PatternFlowIpv6HopLimitCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 257 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -55218,8 +55370,8 @@ type PatternFlowPfcPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { - *x = PatternFlowPfcPauseControlOpCodeCounter{} +func (x *PatternFlowIpv6HopLimitCounter) Reset() { + *x = PatternFlowIpv6HopLimitCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[440] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55227,13 +55379,13 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { +func (x *PatternFlowIpv6HopLimitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[440] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55245,26 +55397,26 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{440} } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55274,7 +55426,7 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseControlOpCodeMetricTag struct { +type PatternFlowIpv6HopLimitMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55288,12 +55440,12 @@ type PatternFlowPfcPauseControlOpCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowPfcPauseControlOpCodeMetricTag{} +func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { + *x = PatternFlowIpv6HopLimitMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[441] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55301,13 +55453,13 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowIpv6HopLimitMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[441] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55319,59 +55471,59 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{441} } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowPfcPauseControlOpCode struct { +// Hop limit +type PatternFlowIpv6HopLimit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 257 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [257] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCode) Reset() { - *x = PatternFlowPfcPauseControlOpCode{} +func (x *PatternFlowIpv6HopLimit) Reset() { + *x = PatternFlowIpv6HopLimit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[442] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55379,13 +55531,13 @@ func (x *PatternFlowPfcPauseControlOpCode) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCode) String() string { +func (x *PatternFlowIpv6HopLimit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[442] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55397,72 +55549,72 @@ func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{442} } -func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { +func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseControlOpCode_Choice_unspecified + return PatternFlowIpv6HopLimit_Choice_unspecified } -func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { +func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPauseClassEnableVectorCounter struct { +// ipv6 counter pattern +type PatternFlowIpv6SrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = ::0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = ::1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorCounter{} +func (x *PatternFlowIpv6SrcCounter) Reset() { + *x = PatternFlowIpv6SrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[443] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55470,13 +55622,13 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { +func (x *PatternFlowIpv6SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} +func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[443] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55488,26 +55640,26 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{443} } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55517,7 +55669,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseClassEnableVectorMetricTag struct { +type PatternFlowIpv6SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55531,12 +55683,12 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} +func (x *PatternFlowIpv6SrcMetricTag) Reset() { + *x = PatternFlowIpv6SrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[444] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55544,13 +55696,13 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { +func (x *PatternFlowIpv6SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[444] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55562,59 +55714,59 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{444} } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { +func (x *PatternFlowIpv6SrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination -type PatternFlowPfcPauseClassEnableVector struct { +// Source address +type PatternFlowIpv6Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = ::0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVector) Reset() { - *x = PatternFlowPfcPauseClassEnableVector{} +func (x *PatternFlowIpv6Src) Reset() { + *x = PatternFlowIpv6Src{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55622,13 +55774,13 @@ func (x *PatternFlowPfcPauseClassEnableVector) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVector) String() string { +func (x *PatternFlowIpv6Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} +func (*PatternFlowIpv6Src) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[445] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55640,72 +55792,72 @@ func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{445} } -func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { +func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseClassEnableVector_Choice_unspecified + return PatternFlowIpv6Src_Choice_unspecified } -func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { +func (x *PatternFlowIpv6Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { +func (x *PatternFlowIpv6Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { +func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass0Counter struct { +// ipv6 counter pattern +type PatternFlowIpv6DstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = ::0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = ::1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { - *x = PatternFlowPfcPausePauseClass0Counter{} +func (x *PatternFlowIpv6DstCounter) Reset() { + *x = PatternFlowIpv6DstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55713,13 +55865,13 @@ func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0Counter) String() string { +func (x *PatternFlowIpv6DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} +func (*PatternFlowIpv6DstCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[446] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55731,26 +55883,26 @@ func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{446} } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { +func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55760,7 +55912,7 @@ func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass0MetricTag struct { +type PatternFlowIpv6DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55774,12 +55926,12 @@ type PatternFlowPfcPausePauseClass0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass0MetricTag{} +func (x *PatternFlowIpv6DstMetricTag) Reset() { + *x = PatternFlowIpv6DstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55787,13 +55939,13 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { +func (x *PatternFlowIpv6DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} +func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[447] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55805,59 +55957,59 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{447} } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { +func (x *PatternFlowIpv6DstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 0 -type PatternFlowPfcPausePauseClass0 struct { +// Destination address +type PatternFlowIpv6Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = ::0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0) Reset() { - *x = PatternFlowPfcPausePauseClass0{} +func (x *PatternFlowIpv6Dst) Reset() { + *x = PatternFlowIpv6Dst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55865,13 +56017,13 @@ func (x *PatternFlowPfcPausePauseClass0) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0) String() string { +func (x *PatternFlowIpv6Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} +func (*PatternFlowIpv6Dst) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[448] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55883,72 +56035,72 @@ func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{448} } -func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { +func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass0_Choice_unspecified + return PatternFlowIpv6Dst_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { +func (x *PatternFlowIpv6Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { +func (x *PatternFlowIpv6Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { +func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass1Counter struct { +// mac counter pattern +type PatternFlowPfcPauseDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { - *x = PatternFlowPfcPausePauseClass1Counter{} +func (x *PatternFlowPfcPauseDstCounter) Reset() { + *x = PatternFlowPfcPauseDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55956,13 +56108,13 @@ func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1Counter) String() string { +func (x *PatternFlowPfcPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[449] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55974,26 +56126,26 @@ func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{449} } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56003,7 +56155,7 @@ func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass1MetricTag struct { +type PatternFlowPfcPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56017,12 +56169,12 @@ type PatternFlowPfcPausePauseClass1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass1MetricTag{} +func (x *PatternFlowPfcPauseDstMetricTag) Reset() { + *x = PatternFlowPfcPauseDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56030,13 +56182,13 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { +func (x *PatternFlowPfcPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[450] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56048,59 +56200,59 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{450} } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { +func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 1 -type PatternFlowPfcPausePauseClass1 struct { +// Destination MAC address +type PatternFlowPfcPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1) Reset() { - *x = PatternFlowPfcPausePauseClass1{} +func (x *PatternFlowPfcPauseDst) Reset() { + *x = PatternFlowPfcPauseDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56108,13 +56260,13 @@ func (x *PatternFlowPfcPausePauseClass1) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1) String() string { +func (x *PatternFlowPfcPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} +func (*PatternFlowPfcPauseDst) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[451] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56126,72 +56278,72 @@ func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{451} } -func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { +func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass1_Choice_unspecified + return PatternFlowPfcPauseDst_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { +func (x *PatternFlowPfcPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { +func (x *PatternFlowPfcPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { +func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass2Counter struct { +// mac counter pattern +type PatternFlowPfcPauseSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { - *x = PatternFlowPfcPausePauseClass2Counter{} +func (x *PatternFlowPfcPauseSrcCounter) Reset() { + *x = PatternFlowPfcPauseSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56199,13 +56351,13 @@ func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2Counter) String() string { +func (x *PatternFlowPfcPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[452] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56217,26 +56369,26 @@ func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{452} } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56246,7 +56398,7 @@ func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass2MetricTag struct { +type PatternFlowPfcPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56260,12 +56412,12 @@ type PatternFlowPfcPausePauseClass2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass2MetricTag{} +func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { + *x = PatternFlowPfcPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56273,13 +56425,13 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { +func (x *PatternFlowPfcPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[453] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56291,59 +56443,59 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{453} } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { +func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 2 -type PatternFlowPfcPausePauseClass2 struct { +// Source MAC address +type PatternFlowPfcPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2) Reset() { - *x = PatternFlowPfcPausePauseClass2{} +func (x *PatternFlowPfcPauseSrc) Reset() { + *x = PatternFlowPfcPauseSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56351,13 +56503,13 @@ func (x *PatternFlowPfcPausePauseClass2) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2) String() string { +func (x *PatternFlowPfcPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[454] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56369,47 +56521,47 @@ func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{454} } -func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { +func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass2_Choice_unspecified + return PatternFlowPfcPauseSrc_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { +func (x *PatternFlowPfcPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { +func (x *PatternFlowPfcPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { +func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { if x != nil { return x.MetricTags } @@ -56417,13 +56569,13 @@ func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass3Counter struct { +type PatternFlowPfcPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -56433,8 +56585,8 @@ type PatternFlowPfcPausePauseClass3Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { - *x = PatternFlowPfcPausePauseClass3Counter{} +func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { + *x = PatternFlowPfcPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56442,13 +56594,13 @@ func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3Counter) String() string { +func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[455] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56460,26 +56612,26 @@ func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{455} } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56489,7 +56641,7 @@ func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass3MetricTag struct { +type PatternFlowPfcPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56507,8 +56659,8 @@ type PatternFlowPfcPausePauseClass3MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass3MetricTag{} +func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowPfcPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56516,13 +56668,13 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[456] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56534,59 +56686,59 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{456} } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 3 -type PatternFlowPfcPausePauseClass3 struct { +// Ethernet type +type PatternFlowPfcPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3) Reset() { - *x = PatternFlowPfcPausePauseClass3{} +func (x *PatternFlowPfcPauseEtherType) Reset() { + *x = PatternFlowPfcPauseEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56594,13 +56746,13 @@ func (x *PatternFlowPfcPausePauseClass3) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3) String() string { +func (x *PatternFlowPfcPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[457] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56612,47 +56764,47 @@ func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{457} } -func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { +func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass3_Choice_unspecified + return PatternFlowPfcPauseEtherType_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { +func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -56660,13 +56812,13 @@ func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass4Counter struct { +type PatternFlowPfcPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 257 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -56676,8 +56828,8 @@ type PatternFlowPfcPausePauseClass4Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { - *x = PatternFlowPfcPausePauseClass4Counter{} +func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { + *x = PatternFlowPfcPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56685,13 +56837,13 @@ func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4Counter) String() string { +func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[458] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56703,26 +56855,26 @@ func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{458} } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56732,7 +56884,7 @@ func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass4MetricTag struct { +type PatternFlowPfcPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56750,8 +56902,8 @@ type PatternFlowPfcPausePauseClass4MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass4MetricTag{} +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowPfcPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56759,13 +56911,13 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[459] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56777,59 +56929,59 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{459} } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 4 -type PatternFlowPfcPausePauseClass4 struct { +// Control operation code +type PatternFlowPfcPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 257 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [257] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4) Reset() { - *x = PatternFlowPfcPausePauseClass4{} +func (x *PatternFlowPfcPauseControlOpCode) Reset() { + *x = PatternFlowPfcPauseControlOpCode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56837,13 +56989,13 @@ func (x *PatternFlowPfcPausePauseClass4) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4) String() string { +func (x *PatternFlowPfcPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[460] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56855,47 +57007,47 @@ func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{460} } -func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { +func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass4_Choice_unspecified + return PatternFlowPfcPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { +func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } @@ -56903,7 +57055,7 @@ func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass5Counter struct { +type PatternFlowPfcPauseClassEnableVectorCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56919,8 +57071,8 @@ type PatternFlowPfcPausePauseClass5Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { - *x = PatternFlowPfcPausePauseClass5Counter{} +func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56928,13 +57080,13 @@ func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5Counter) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[461] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56946,26 +57098,26 @@ func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{461} } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56975,7 +57127,7 @@ func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass5MetricTag struct { +type PatternFlowPfcPauseClassEnableVectorMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56993,8 +57145,8 @@ type PatternFlowPfcPausePauseClass5MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass5MetricTag{} +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57002,13 +57154,13 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[462] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57020,41 +57172,41 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{462} } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 5 -type PatternFlowPfcPausePauseClass5 struct { +// Destination +type PatternFlowPfcPauseClassEnableVector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57062,17 +57214,17 @@ type PatternFlowPfcPausePauseClass5 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5) Reset() { - *x = PatternFlowPfcPausePauseClass5{} +func (x *PatternFlowPfcPauseClassEnableVector) Reset() { + *x = PatternFlowPfcPauseClassEnableVector{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57080,13 +57232,13 @@ func (x *PatternFlowPfcPausePauseClass5) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5) String() string { +func (x *PatternFlowPfcPauseClassEnableVector) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[463] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57098,47 +57250,47 @@ func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{463} } -func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { +func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass5_Choice_unspecified + return PatternFlowPfcPauseClassEnableVector_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { +func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { if x != nil { return x.MetricTags } @@ -57146,7 +57298,7 @@ func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass6Counter struct { +type PatternFlowPfcPausePauseClass0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57162,8 +57314,8 @@ type PatternFlowPfcPausePauseClass6Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { - *x = PatternFlowPfcPausePauseClass6Counter{} +func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { + *x = PatternFlowPfcPausePauseClass0Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57171,13 +57323,13 @@ func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6Counter) String() string { +func (x *PatternFlowPfcPausePauseClass0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[464] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57189,26 +57341,26 @@ func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{464} } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57218,7 +57370,7 @@ func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass6MetricTag struct { +type PatternFlowPfcPausePauseClass0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57236,8 +57388,8 @@ type PatternFlowPfcPausePauseClass6MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass6MetricTag{} +func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass0MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57245,13 +57397,13 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[465] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57263,41 +57415,41 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{465} } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 6 -type PatternFlowPfcPausePauseClass6 struct { +// Pause class 0 +type PatternFlowPfcPausePauseClass0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57305,17 +57457,17 @@ type PatternFlowPfcPausePauseClass6 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6) Reset() { - *x = PatternFlowPfcPausePauseClass6{} +func (x *PatternFlowPfcPausePauseClass0) Reset() { + *x = PatternFlowPfcPausePauseClass0{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57323,13 +57475,13 @@ func (x *PatternFlowPfcPausePauseClass6) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6) String() string { +func (x *PatternFlowPfcPausePauseClass0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[466] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57341,47 +57493,47 @@ func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{466} } -func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass6_Choice_unspecified + return PatternFlowPfcPausePauseClass0_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { +func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { if x != nil { return x.MetricTags } @@ -57389,7 +57541,7 @@ func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass7Counter struct { +type PatternFlowPfcPausePauseClass1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57405,8 +57557,8 @@ type PatternFlowPfcPausePauseClass7Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { - *x = PatternFlowPfcPausePauseClass7Counter{} +func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { + *x = PatternFlowPfcPausePauseClass1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57414,13 +57566,13 @@ func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7Counter) String() string { +func (x *PatternFlowPfcPausePauseClass1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[467] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57432,26 +57584,26 @@ func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{467} } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57461,7 +57613,7 @@ func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass7MetricTag struct { +type PatternFlowPfcPausePauseClass1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57479,8 +57631,8 @@ type PatternFlowPfcPausePauseClass7MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass7MetricTag{} +func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57488,13 +57640,13 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[468] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57506,41 +57658,41 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{468} } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 7 -type PatternFlowPfcPausePauseClass7 struct { +// Pause class 1 +type PatternFlowPfcPausePauseClass1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57548,17 +57700,17 @@ type PatternFlowPfcPausePauseClass7 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7) Reset() { - *x = PatternFlowPfcPausePauseClass7{} +func (x *PatternFlowPfcPausePauseClass1) Reset() { + *x = PatternFlowPfcPausePauseClass1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57566,13 +57718,13 @@ func (x *PatternFlowPfcPausePauseClass7) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7) String() string { +func (x *PatternFlowPfcPausePauseClass1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[469] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57584,72 +57736,72 @@ func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{469} } -func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass7_Choice_unspecified + return PatternFlowPfcPausePauseClass1_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { +func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseDstCounter struct { +// integer counter pattern +type PatternFlowPfcPausePauseClass2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseDstCounter) Reset() { - *x = PatternFlowEthernetPauseDstCounter{} +func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { + *x = PatternFlowPfcPausePauseClass2Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57657,13 +57809,13 @@ func (x *PatternFlowEthernetPauseDstCounter) Reset() { } } -func (x *PatternFlowEthernetPauseDstCounter) String() string { +func (x *PatternFlowPfcPausePauseClass2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[470] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57675,26 +57827,26 @@ func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{470} } -func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57704,7 +57856,7 @@ func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseDstMetricTag struct { +type PatternFlowPfcPausePauseClass2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57718,12 +57870,12 @@ type PatternFlowEthernetPauseDstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { - *x = PatternFlowEthernetPauseDstMetricTag{} +func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass2MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57731,13 +57883,13 @@ func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseDstMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[471] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57749,59 +57901,59 @@ func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{471} } -func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination MAC address -type PatternFlowEthernetPauseDst struct { +// Pause class 2 +type PatternFlowPfcPausePauseClass2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseDst) Reset() { - *x = PatternFlowEthernetPauseDst{} +func (x *PatternFlowPfcPausePauseClass2) Reset() { + *x = PatternFlowPfcPausePauseClass2{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57809,13 +57961,13 @@ func (x *PatternFlowEthernetPauseDst) Reset() { } } -func (x *PatternFlowEthernetPauseDst) String() string { +func (x *PatternFlowPfcPausePauseClass2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[472] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57827,72 +57979,72 @@ func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{472} } -func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseDst_Choice_unspecified + return PatternFlowPfcPausePauseClass2_Choice_unspecified } -func (x *PatternFlowEthernetPauseDst) GetValue() string { +func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDst) GetValues() []string { +func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { +func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseSrcCounter struct { +// integer counter pattern +type PatternFlowPfcPausePauseClass3Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseSrcCounter) Reset() { - *x = PatternFlowEthernetPauseSrcCounter{} +func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { + *x = PatternFlowPfcPausePauseClass3Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57900,13 +58052,13 @@ func (x *PatternFlowEthernetPauseSrcCounter) Reset() { } } -func (x *PatternFlowEthernetPauseSrcCounter) String() string { +func (x *PatternFlowPfcPausePauseClass3Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[473] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57918,26 +58070,26 @@ func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{473} } -func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57947,7 +58099,7 @@ func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseSrcMetricTag struct { +type PatternFlowPfcPausePauseClass3MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57961,12 +58113,12 @@ type PatternFlowEthernetPauseSrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { - *x = PatternFlowEthernetPauseSrcMetricTag{} +func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass3MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57974,13 +58126,13 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[474] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57992,59 +58144,59 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{474} } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source MAC address -type PatternFlowEthernetPauseSrc struct { +// Pause class 3 +type PatternFlowPfcPausePauseClass3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseSrc) Reset() { - *x = PatternFlowEthernetPauseSrc{} +func (x *PatternFlowPfcPausePauseClass3) Reset() { + *x = PatternFlowPfcPausePauseClass3{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58052,13 +58204,13 @@ func (x *PatternFlowEthernetPauseSrc) Reset() { } } -func (x *PatternFlowEthernetPauseSrc) String() string { +func (x *PatternFlowPfcPausePauseClass3) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[475] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58070,47 +58222,47 @@ func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{475} } -func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseSrc_Choice_unspecified + return PatternFlowPfcPausePauseClass3_Choice_unspecified } -func (x *PatternFlowEthernetPauseSrc) GetValue() string { +func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrc) GetValues() []string { +func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { +func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { if x != nil { return x.MetricTags } @@ -58118,13 +58270,13 @@ func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPaus } // integer counter pattern -type PatternFlowEthernetPauseEtherTypeCounter struct { +type PatternFlowPfcPausePauseClass4Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -58134,8 +58286,8 @@ type PatternFlowEthernetPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { - *x = PatternFlowEthernetPauseEtherTypeCounter{} +func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { + *x = PatternFlowPfcPausePauseClass4Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[476] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58143,13 +58295,13 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass4Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[476] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58161,26 +58313,26 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{476} } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58190,7 +58342,7 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseEtherTypeMetricTag struct { +type PatternFlowPfcPausePauseClass4MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58208,8 +58360,8 @@ type PatternFlowEthernetPauseEtherTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetPauseEtherTypeMetricTag{} +func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass4MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58217,13 +58369,13 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[477] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58235,59 +58387,59 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{477} } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowEthernetPauseEtherType struct { +// Pause class 4 +type PatternFlowPfcPausePauseClass4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseEtherType) Reset() { - *x = PatternFlowEthernetPauseEtherType{} +func (x *PatternFlowPfcPausePauseClass4) Reset() { + *x = PatternFlowPfcPausePauseClass4{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58295,13 +58447,13 @@ func (x *PatternFlowEthernetPauseEtherType) Reset() { } } -func (x *PatternFlowEthernetPauseEtherType) String() string { +func (x *PatternFlowPfcPausePauseClass4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[478] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58313,47 +58465,47 @@ func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{478} } -func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseEtherType_Choice_unspecified + return PatternFlowPfcPausePauseClass4_Choice_unspecified } -func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { +func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { if x != nil { return x.MetricTags } @@ -58361,13 +58513,13 @@ func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthern } // integer counter pattern -type PatternFlowEthernetPauseControlOpCodeCounter struct { +type PatternFlowPfcPausePauseClass5Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -58377,8 +58529,8 @@ type PatternFlowEthernetPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeCounter{} +func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { + *x = PatternFlowPfcPausePauseClass5Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58386,13 +58538,13 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass5Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[479] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58404,26 +58556,26 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{479} } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58433,7 +58585,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseControlOpCodeMetricTag struct { +type PatternFlowPfcPausePauseClass5MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58451,8 +58603,8 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} +func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass5MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58460,13 +58612,13 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[480] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58478,59 +58630,59 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{480} } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowEthernetPauseControlOpCode struct { +// Pause class 5 +type PatternFlowPfcPausePauseClass5 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCode) Reset() { - *x = PatternFlowEthernetPauseControlOpCode{} +func (x *PatternFlowPfcPausePauseClass5) Reset() { + *x = PatternFlowPfcPausePauseClass5{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58538,13 +58690,13 @@ func (x *PatternFlowEthernetPauseControlOpCode) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCode) String() string { +func (x *PatternFlowPfcPausePauseClass5) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[481] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58556,47 +58708,47 @@ func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{481} } -func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseControlOpCode_Choice_unspecified + return PatternFlowPfcPausePauseClass5_Choice_unspecified } -func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { +func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { if x != nil { return x.MetricTags } @@ -58604,7 +58756,7 @@ func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEt } // integer counter pattern -type PatternFlowEthernetPauseTimeCounter struct { +type PatternFlowPfcPausePauseClass6Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58620,8 +58772,8 @@ type PatternFlowEthernetPauseTimeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseTimeCounter) Reset() { - *x = PatternFlowEthernetPauseTimeCounter{} +func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { + *x = PatternFlowPfcPausePauseClass6Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58629,13 +58781,13 @@ func (x *PatternFlowEthernetPauseTimeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseTimeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass6Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[482] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58647,26 +58799,26 @@ func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{482} } -func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58676,7 +58828,7 @@ func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseTimeMetricTag struct { +type PatternFlowPfcPausePauseClass6MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58694,8 +58846,8 @@ type PatternFlowEthernetPauseTimeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { - *x = PatternFlowEthernetPauseTimeMetricTag{} +func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass6MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58703,13 +58855,13 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[483] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58721,41 +58873,41 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{483} } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time -type PatternFlowEthernetPauseTime struct { +// Pause class 6 +type PatternFlowPfcPausePauseClass6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -58763,17 +58915,17 @@ type PatternFlowEthernetPauseTime struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseTime) Reset() { - *x = PatternFlowEthernetPauseTime{} +func (x *PatternFlowPfcPausePauseClass6) Reset() { + *x = PatternFlowPfcPausePauseClass6{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58781,13 +58933,13 @@ func (x *PatternFlowEthernetPauseTime) Reset() { } } -func (x *PatternFlowEthernetPauseTime) String() string { +func (x *PatternFlowPfcPausePauseClass6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[484] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58799,47 +58951,47 @@ func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{484} } -func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseTime_Choice_unspecified + return PatternFlowPfcPausePauseClass6_Choice_unspecified } -func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { +func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { if x != nil { return x.MetricTags } @@ -58847,7 +58999,7 @@ func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPau } // integer counter pattern -type PatternFlowTcpSrcPortCounter struct { +type PatternFlowPfcPausePauseClass7Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58863,8 +59015,8 @@ type PatternFlowTcpSrcPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpSrcPortCounter) Reset() { - *x = PatternFlowTcpSrcPortCounter{} +func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { + *x = PatternFlowPfcPausePauseClass7Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58872,13 +59024,13 @@ func (x *PatternFlowTcpSrcPortCounter) Reset() { } } -func (x *PatternFlowTcpSrcPortCounter) String() string { +func (x *PatternFlowPfcPausePauseClass7Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[485] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58890,26 +59042,26 @@ func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{485} } -func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58919,7 +59071,7 @@ func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpSrcPortMetricTag struct { +type PatternFlowPfcPausePauseClass7MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58937,8 +59089,8 @@ type PatternFlowTcpSrcPortMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSrcPortMetricTag) Reset() { - *x = PatternFlowTcpSrcPortMetricTag{} +func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass7MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58946,13 +59098,13 @@ func (x *PatternFlowTcpSrcPortMetricTag) Reset() { } } -func (x *PatternFlowTcpSrcPortMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[486] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58964,41 +59116,41 @@ func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{486} } -func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source port -type PatternFlowTcpSrcPort struct { +// Pause class 7 +type PatternFlowPfcPausePauseClass7 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -59006,17 +59158,17 @@ type PatternFlowTcpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpSrcPort) Reset() { - *x = PatternFlowTcpSrcPort{} +func (x *PatternFlowPfcPausePauseClass7) Reset() { + *x = PatternFlowPfcPausePauseClass7{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[487] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59024,13 +59176,13 @@ func (x *PatternFlowTcpSrcPort) Reset() { } } -func (x *PatternFlowTcpSrcPort) String() string { +func (x *PatternFlowPfcPausePauseClass7) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[487] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59042,72 +59194,72 @@ func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{487} } -func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSrcPort_Choice_unspecified + return PatternFlowPfcPausePauseClass7_Choice_unspecified } -func (x *PatternFlowTcpSrcPort) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { +func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpDstPortCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpDstPortCounter) Reset() { - *x = PatternFlowTcpDstPortCounter{} +func (x *PatternFlowEthernetPauseDstCounter) Reset() { + *x = PatternFlowEthernetPauseDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59115,13 +59267,13 @@ func (x *PatternFlowTcpDstPortCounter) Reset() { } } -func (x *PatternFlowTcpDstPortCounter) String() string { +func (x *PatternFlowEthernetPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[488] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59133,26 +59285,26 @@ func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{488} } -func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59162,7 +59314,7 @@ func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpDstPortMetricTag struct { +type PatternFlowEthernetPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59176,12 +59328,12 @@ type PatternFlowTcpDstPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDstPortMetricTag) Reset() { - *x = PatternFlowTcpDstPortMetricTag{} +func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { + *x = PatternFlowEthernetPauseDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59189,13 +59341,13 @@ func (x *PatternFlowTcpDstPortMetricTag) Reset() { } } -func (x *PatternFlowTcpDstPortMetricTag) String() string { +func (x *PatternFlowEthernetPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[489] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59207,59 +59359,59 @@ func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{489} } -func (x *PatternFlowTcpDstPortMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination port -type PatternFlowTcpDstPort struct { +// Destination MAC address +type PatternFlowEthernetPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDstPort) Reset() { - *x = PatternFlowTcpDstPort{} +func (x *PatternFlowEthernetPauseDst) Reset() { + *x = PatternFlowEthernetPauseDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59267,13 +59419,13 @@ func (x *PatternFlowTcpDstPort) Reset() { } } -func (x *PatternFlowTcpDstPort) String() string { +func (x *PatternFlowEthernetPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst) ProtoMessage() {} -func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[490] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59285,72 +59437,72 @@ func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{490} } -func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { +func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDstPort_Choice_unspecified + return PatternFlowEthernetPauseDst_Choice_unspecified } -func (x *PatternFlowTcpDstPort) GetValue() uint32 { +func (x *PatternFlowEthernetPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpDstPort) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { +func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpSeqNumCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpSeqNumCounter) Reset() { - *x = PatternFlowTcpSeqNumCounter{} +func (x *PatternFlowEthernetPauseSrcCounter) Reset() { + *x = PatternFlowEthernetPauseSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59358,13 +59510,13 @@ func (x *PatternFlowTcpSeqNumCounter) Reset() { } } -func (x *PatternFlowTcpSeqNumCounter) String() string { +func (x *PatternFlowEthernetPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[491] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59376,26 +59528,26 @@ func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{491} } -func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59405,7 +59557,7 @@ func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpSeqNumMetricTag struct { +type PatternFlowEthernetPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59419,12 +59571,12 @@ type PatternFlowTcpSeqNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSeqNumMetricTag) Reset() { - *x = PatternFlowTcpSeqNumMetricTag{} +func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { + *x = PatternFlowEthernetPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59432,13 +59584,13 @@ func (x *PatternFlowTcpSeqNumMetricTag) Reset() { } } -func (x *PatternFlowTcpSeqNumMetricTag) String() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[492] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59450,59 +59602,59 @@ func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{492} } -func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number -type PatternFlowTcpSeqNum struct { +// Source MAC address +type PatternFlowEthernetPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpSeqNum) Reset() { - *x = PatternFlowTcpSeqNum{} +func (x *PatternFlowEthernetPauseSrc) Reset() { + *x = PatternFlowEthernetPauseSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59510,13 +59662,13 @@ func (x *PatternFlowTcpSeqNum) Reset() { } } -func (x *PatternFlowTcpSeqNum) String() string { +func (x *PatternFlowEthernetPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[493] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59528,47 +59680,47 @@ func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{493} } -func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { +func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSeqNum_Choice_unspecified + return PatternFlowEthernetPauseSrc_Choice_unspecified } -func (x *PatternFlowTcpSeqNum) GetValue() uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { +func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { if x != nil { return x.MetricTags } @@ -59576,13 +59728,13 @@ func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag } // integer counter pattern -type PatternFlowTcpAckNumCounter struct { +type PatternFlowEthernetPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -59592,8 +59744,8 @@ type PatternFlowTcpAckNumCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpAckNumCounter) Reset() { - *x = PatternFlowTcpAckNumCounter{} +func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { + *x = PatternFlowEthernetPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59601,13 +59753,13 @@ func (x *PatternFlowTcpAckNumCounter) Reset() { } } -func (x *PatternFlowTcpAckNumCounter) String() string { +func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[494] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59619,26 +59771,26 @@ func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{494} } -func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59648,7 +59800,7 @@ func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpAckNumMetricTag struct { +type PatternFlowEthernetPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59662,12 +59814,12 @@ type PatternFlowTcpAckNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpAckNumMetricTag) Reset() { - *x = PatternFlowTcpAckNumMetricTag{} +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59675,13 +59827,13 @@ func (x *PatternFlowTcpAckNumMetricTag) Reset() { } } -func (x *PatternFlowTcpAckNumMetricTag) String() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[495] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59693,59 +59845,59 @@ func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{495} } -func (x *PatternFlowTcpAckNumMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Acknowledgement number -type PatternFlowTcpAckNum struct { +// Ethernet type +type PatternFlowEthernetPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpAckNum) Reset() { - *x = PatternFlowTcpAckNum{} +func (x *PatternFlowEthernetPauseEtherType) Reset() { + *x = PatternFlowEthernetPauseEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59753,13 +59905,13 @@ func (x *PatternFlowTcpAckNum) Reset() { } } -func (x *PatternFlowTcpAckNum) String() string { +func (x *PatternFlowEthernetPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} -func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[496] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59771,47 +59923,47 @@ func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{496} } -func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { +func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpAckNum_Choice_unspecified + return PatternFlowEthernetPauseEtherType_Choice_unspecified } -func (x *PatternFlowTcpAckNum) GetValue() uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpAckNum) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { +func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -59819,13 +59971,13 @@ func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag } // integer counter pattern -type PatternFlowTcpDataOffsetCounter struct { +type PatternFlowEthernetPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -59835,8 +59987,8 @@ type PatternFlowTcpDataOffsetCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpDataOffsetCounter) Reset() { - *x = PatternFlowTcpDataOffsetCounter{} +func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59844,13 +59996,13 @@ func (x *PatternFlowTcpDataOffsetCounter) Reset() { } } -func (x *PatternFlowTcpDataOffsetCounter) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[497] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59862,26 +60014,26 @@ func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{497} } -func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59891,7 +60043,7 @@ func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpDataOffsetMetricTag struct { +type PatternFlowEthernetPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59905,12 +60057,12 @@ type PatternFlowTcpDataOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { - *x = PatternFlowTcpDataOffsetMetricTag{} +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59918,13 +60070,13 @@ func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { } } -func (x *PatternFlowTcpDataOffsetMetricTag) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[498] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59936,59 +60088,59 @@ func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{498} } -func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The number of 32 bit words in the TCP header. This indicates where the data begins. -type PatternFlowTcpDataOffset struct { +// Control operation code +type PatternFlowEthernetPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDataOffset) Reset() { - *x = PatternFlowTcpDataOffset{} +func (x *PatternFlowEthernetPauseControlOpCode) Reset() { + *x = PatternFlowEthernetPauseControlOpCode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59996,13 +60148,13 @@ func (x *PatternFlowTcpDataOffset) Reset() { } } -func (x *PatternFlowTcpDataOffset) String() string { +func (x *PatternFlowEthernetPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[499] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60014,47 +60166,47 @@ func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{499} } -func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { +func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDataOffset_Choice_unspecified + return PatternFlowEthernetPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowTcpDataOffset) GetValue() uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { +func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } @@ -60062,7 +60214,7 @@ func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMe } // integer counter pattern -type PatternFlowTcpEcnNsCounter struct { +type PatternFlowEthernetPauseTimeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60078,8 +60230,8 @@ type PatternFlowTcpEcnNsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnNsCounter) Reset() { - *x = PatternFlowTcpEcnNsCounter{} +func (x *PatternFlowEthernetPauseTimeCounter) Reset() { + *x = PatternFlowEthernetPauseTimeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60087,13 +60239,13 @@ func (x *PatternFlowTcpEcnNsCounter) Reset() { } } -func (x *PatternFlowTcpEcnNsCounter) String() string { +func (x *PatternFlowEthernetPauseTimeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[500] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60105,26 +60257,26 @@ func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{500} } -func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60134,7 +60286,7 @@ func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnNsMetricTag struct { +type PatternFlowEthernetPauseTimeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60148,12 +60300,12 @@ type PatternFlowTcpEcnNsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnNsMetricTag) Reset() { - *x = PatternFlowTcpEcnNsMetricTag{} +func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { + *x = PatternFlowEthernetPauseTimeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60161,13 +60313,13 @@ func (x *PatternFlowTcpEcnNsMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnNsMetricTag) String() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[501] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60179,41 +60331,41 @@ func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{501} } -func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, concealment protection. -type PatternFlowTcpEcnNs struct { +// Time +type PatternFlowEthernetPauseTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60221,17 +60373,17 @@ type PatternFlowTcpEcnNs struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnNs) Reset() { - *x = PatternFlowTcpEcnNs{} +func (x *PatternFlowEthernetPauseTime) Reset() { + *x = PatternFlowEthernetPauseTime{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60239,13 +60391,13 @@ func (x *PatternFlowTcpEcnNs) Reset() { } } -func (x *PatternFlowTcpEcnNs) String() string { +func (x *PatternFlowEthernetPauseTime) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[502] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60257,47 +60409,47 @@ func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{502} } -func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { +func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnNs_Choice_unspecified + return PatternFlowEthernetPauseTime_Choice_unspecified } -func (x *PatternFlowTcpEcnNs) GetValue() uint32 { +func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { +func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { if x != nil { return x.MetricTags } @@ -60305,7 +60457,7 @@ func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { } // integer counter pattern -type PatternFlowTcpEcnCwrCounter struct { +type PatternFlowTcpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60321,8 +60473,8 @@ type PatternFlowTcpEcnCwrCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnCwrCounter) Reset() { - *x = PatternFlowTcpEcnCwrCounter{} +func (x *PatternFlowTcpSrcPortCounter) Reset() { + *x = PatternFlowTcpSrcPortCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60330,13 +60482,13 @@ func (x *PatternFlowTcpEcnCwrCounter) Reset() { } } -func (x *PatternFlowTcpEcnCwrCounter) String() string { +func (x *PatternFlowTcpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} +func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[503] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60348,26 +60500,26 @@ func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{503} } -func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60377,7 +60529,7 @@ func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnCwrMetricTag struct { +type PatternFlowTcpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60391,12 +60543,12 @@ type PatternFlowTcpEcnCwrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { - *x = PatternFlowTcpEcnCwrMetricTag{} +func (x *PatternFlowTcpSrcPortMetricTag) Reset() { + *x = PatternFlowTcpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60404,13 +60556,13 @@ func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnCwrMetricTag) String() string { +func (x *PatternFlowTcpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} +func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[504] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60422,41 +60574,41 @@ func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{504} } -func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { +func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, congestion window reduced. -type PatternFlowTcpEcnCwr struct { +// Source port +type PatternFlowTcpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60464,17 +60616,17 @@ type PatternFlowTcpEcnCwr struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnCwr) Reset() { - *x = PatternFlowTcpEcnCwr{} +func (x *PatternFlowTcpSrcPort) Reset() { + *x = PatternFlowTcpSrcPort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60482,13 +60634,13 @@ func (x *PatternFlowTcpEcnCwr) Reset() { } } -func (x *PatternFlowTcpEcnCwr) String() string { +func (x *PatternFlowTcpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr) ProtoMessage() {} +func (*PatternFlowTcpSrcPort) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[505] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60500,47 +60652,47 @@ func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{505} } -func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { +func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnCwr_Choice_unspecified + return PatternFlowTcpSrcPort_Choice_unspecified } -func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { +func (x *PatternFlowTcpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { +func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { +func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { if x != nil { return x.MetricTags } @@ -60548,7 +60700,7 @@ func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag } // integer counter pattern -type PatternFlowTcpEcnEchoCounter struct { +type PatternFlowTcpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60564,8 +60716,8 @@ type PatternFlowTcpEcnEchoCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnEchoCounter) Reset() { - *x = PatternFlowTcpEcnEchoCounter{} +func (x *PatternFlowTcpDstPortCounter) Reset() { + *x = PatternFlowTcpDstPortCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60573,13 +60725,13 @@ func (x *PatternFlowTcpEcnEchoCounter) Reset() { } } -func (x *PatternFlowTcpEcnEchoCounter) String() string { +func (x *PatternFlowTcpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} +func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[506] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60591,26 +60743,26 @@ func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{506} } -func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60620,7 +60772,7 @@ func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnEchoMetricTag struct { +type PatternFlowTcpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60634,12 +60786,12 @@ type PatternFlowTcpEcnEchoMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { - *x = PatternFlowTcpEcnEchoMetricTag{} +func (x *PatternFlowTcpDstPortMetricTag) Reset() { + *x = PatternFlowTcpDstPortMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60647,13 +60799,13 @@ func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnEchoMetricTag) String() string { +func (x *PatternFlowTcpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[507] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60665,42 +60817,41 @@ func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{507} } -func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { +func (x *PatternFlowTcpDstPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates -// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. -type PatternFlowTcpEcnEcho struct { +// Destination port +type PatternFlowTcpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60708,17 +60859,17 @@ type PatternFlowTcpEcnEcho struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnEcho) Reset() { - *x = PatternFlowTcpEcnEcho{} +func (x *PatternFlowTcpDstPort) Reset() { + *x = PatternFlowTcpDstPort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60726,13 +60877,13 @@ func (x *PatternFlowTcpEcnEcho) Reset() { } } -func (x *PatternFlowTcpEcnEcho) String() string { +func (x *PatternFlowTcpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho) ProtoMessage() {} +func (*PatternFlowTcpDstPort) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[508] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60744,47 +60895,47 @@ func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{508} } -func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { +func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnEcho_Choice_unspecified + return PatternFlowTcpDstPort_Choice_unspecified } -func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { +func (x *PatternFlowTcpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { +func (x *PatternFlowTcpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { +func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { if x != nil { return x.MetricTags } @@ -60792,7 +60943,7 @@ func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTa } // integer counter pattern -type PatternFlowTcpCtlUrgCounter struct { +type PatternFlowTcpSeqNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60808,8 +60959,8 @@ type PatternFlowTcpCtlUrgCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlUrgCounter) Reset() { - *x = PatternFlowTcpCtlUrgCounter{} +func (x *PatternFlowTcpSeqNumCounter) Reset() { + *x = PatternFlowTcpSeqNumCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60817,13 +60968,13 @@ func (x *PatternFlowTcpCtlUrgCounter) Reset() { } } -func (x *PatternFlowTcpCtlUrgCounter) String() string { +func (x *PatternFlowTcpSeqNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} +func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[509] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60835,26 +60986,26 @@ func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{509} } -func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60864,7 +61015,7 @@ func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlUrgMetricTag struct { +type PatternFlowTcpSeqNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60878,12 +61029,12 @@ type PatternFlowTcpCtlUrgMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { - *x = PatternFlowTcpCtlUrgMetricTag{} +func (x *PatternFlowTcpSeqNumMetricTag) Reset() { + *x = PatternFlowTcpSeqNumMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60891,13 +61042,13 @@ func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlUrgMetricTag) String() string { +func (x *PatternFlowTcpSeqNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} +func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[510] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60909,41 +61060,41 @@ func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{510} } -func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { +func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the urgent pointer field is significant. -type PatternFlowTcpCtlUrg struct { +// Sequence number +type PatternFlowTcpSeqNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60951,17 +61102,17 @@ type PatternFlowTcpCtlUrg struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlUrg) Reset() { - *x = PatternFlowTcpCtlUrg{} +func (x *PatternFlowTcpSeqNum) Reset() { + *x = PatternFlowTcpSeqNum{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60969,13 +61120,13 @@ func (x *PatternFlowTcpCtlUrg) Reset() { } } -func (x *PatternFlowTcpCtlUrg) String() string { +func (x *PatternFlowTcpSeqNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg) ProtoMessage() {} +func (*PatternFlowTcpSeqNum) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[511] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60987,47 +61138,47 @@ func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{511} } -func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { +func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlUrg_Choice_unspecified + return PatternFlowTcpSeqNum_Choice_unspecified } -func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { +func (x *PatternFlowTcpSeqNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { +func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { +func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { if x != nil { return x.MetricTags } @@ -61035,7 +61186,7 @@ func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag } // integer counter pattern -type PatternFlowTcpCtlAckCounter struct { +type PatternFlowTcpAckNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61051,8 +61202,8 @@ type PatternFlowTcpCtlAckCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlAckCounter) Reset() { - *x = PatternFlowTcpCtlAckCounter{} +func (x *PatternFlowTcpAckNumCounter) Reset() { + *x = PatternFlowTcpAckNumCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61060,13 +61211,13 @@ func (x *PatternFlowTcpCtlAckCounter) Reset() { } } -func (x *PatternFlowTcpCtlAckCounter) String() string { +func (x *PatternFlowTcpAckNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} +func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[512] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61078,26 +61229,26 @@ func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{512} } -func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61107,7 +61258,7 @@ func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlAckMetricTag struct { +type PatternFlowTcpAckNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61121,12 +61272,12 @@ type PatternFlowTcpCtlAckMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlAckMetricTag) Reset() { - *x = PatternFlowTcpCtlAckMetricTag{} +func (x *PatternFlowTcpAckNumMetricTag) Reset() { + *x = PatternFlowTcpAckNumMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61134,13 +61285,13 @@ func (x *PatternFlowTcpCtlAckMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlAckMetricTag) String() string { +func (x *PatternFlowTcpAckNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} +func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[513] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61152,41 +61303,41 @@ func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{513} } -func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { +func (x *PatternFlowTcpAckNumMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the ackknowledgment field is significant. -type PatternFlowTcpCtlAck struct { +// Acknowledgement number +type PatternFlowTcpAckNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61194,17 +61345,17 @@ type PatternFlowTcpCtlAck struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlAck) Reset() { - *x = PatternFlowTcpCtlAck{} +func (x *PatternFlowTcpAckNum) Reset() { + *x = PatternFlowTcpAckNum{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61212,13 +61363,13 @@ func (x *PatternFlowTcpCtlAck) Reset() { } } -func (x *PatternFlowTcpCtlAck) String() string { +func (x *PatternFlowTcpAckNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck) ProtoMessage() {} +func (*PatternFlowTcpAckNum) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[514] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61230,47 +61381,47 @@ func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{514} } -func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { +func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlAck_Choice_unspecified + return PatternFlowTcpAckNum_Choice_unspecified } -func (x *PatternFlowTcpCtlAck) GetValue() uint32 { +func (x *PatternFlowTcpAckNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { +func (x *PatternFlowTcpAckNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { +func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { if x != nil { return x.MetricTags } @@ -61278,7 +61429,7 @@ func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag } // integer counter pattern -type PatternFlowTcpCtlPshCounter struct { +type PatternFlowTcpDataOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61294,8 +61445,8 @@ type PatternFlowTcpCtlPshCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlPshCounter) Reset() { - *x = PatternFlowTcpCtlPshCounter{} +func (x *PatternFlowTcpDataOffsetCounter) Reset() { + *x = PatternFlowTcpDataOffsetCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61303,13 +61454,13 @@ func (x *PatternFlowTcpCtlPshCounter) Reset() { } } -func (x *PatternFlowTcpCtlPshCounter) String() string { +func (x *PatternFlowTcpDataOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[515] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61321,26 +61472,26 @@ func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{515} } -func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61350,7 +61501,7 @@ func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlPshMetricTag struct { +type PatternFlowTcpDataOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61364,12 +61515,12 @@ type PatternFlowTcpCtlPshMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlPshMetricTag) Reset() { - *x = PatternFlowTcpCtlPshMetricTag{} +func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { + *x = PatternFlowTcpDataOffsetMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61377,13 +61528,13 @@ func (x *PatternFlowTcpCtlPshMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlPshMetricTag) String() string { +func (x *PatternFlowTcpDataOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[516] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61395,41 +61546,41 @@ func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{516} } -func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { +func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Asks to push the buffered data to the receiving application. -type PatternFlowTcpCtlPsh struct { +// The number of 32 bit words in the TCP header. This indicates where the data begins. +type PatternFlowTcpDataOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61437,17 +61588,17 @@ type PatternFlowTcpCtlPsh struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlPsh) Reset() { - *x = PatternFlowTcpCtlPsh{} +func (x *PatternFlowTcpDataOffset) Reset() { + *x = PatternFlowTcpDataOffset{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61455,13 +61606,13 @@ func (x *PatternFlowTcpCtlPsh) Reset() { } } -func (x *PatternFlowTcpCtlPsh) String() string { +func (x *PatternFlowTcpDataOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh) ProtoMessage() {} +func (*PatternFlowTcpDataOffset) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[517] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61473,47 +61624,47 @@ func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{517} } -func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { +func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlPsh_Choice_unspecified + return PatternFlowTcpDataOffset_Choice_unspecified } -func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { +func (x *PatternFlowTcpDataOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { +func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { +func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { if x != nil { return x.MetricTags } @@ -61521,7 +61672,7 @@ func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag } // integer counter pattern -type PatternFlowTcpCtlRstCounter struct { +type PatternFlowTcpEcnNsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61537,8 +61688,8 @@ type PatternFlowTcpCtlRstCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlRstCounter) Reset() { - *x = PatternFlowTcpCtlRstCounter{} +func (x *PatternFlowTcpEcnNsCounter) Reset() { + *x = PatternFlowTcpEcnNsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[518] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61546,13 +61697,13 @@ func (x *PatternFlowTcpCtlRstCounter) Reset() { } } -func (x *PatternFlowTcpCtlRstCounter) String() string { +func (x *PatternFlowTcpEcnNsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[518] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61564,26 +61715,26 @@ func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{518} } -func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61593,7 +61744,7 @@ func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlRstMetricTag struct { +type PatternFlowTcpEcnNsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61611,8 +61762,8 @@ type PatternFlowTcpCtlRstMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlRstMetricTag) Reset() { - *x = PatternFlowTcpCtlRstMetricTag{} +func (x *PatternFlowTcpEcnNsMetricTag) Reset() { + *x = PatternFlowTcpEcnNsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61620,13 +61771,13 @@ func (x *PatternFlowTcpCtlRstMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlRstMetricTag) String() string { +func (x *PatternFlowTcpEcnNsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[519] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61638,41 +61789,41 @@ func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{519} } -func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { +func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reset the connection. -type PatternFlowTcpCtlRst struct { +// Explicit congestion notification, concealment protection. +type PatternFlowTcpEcnNs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61680,17 +61831,17 @@ type PatternFlowTcpCtlRst struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlRst) Reset() { - *x = PatternFlowTcpCtlRst{} +func (x *PatternFlowTcpEcnNs) Reset() { + *x = PatternFlowTcpEcnNs{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61698,13 +61849,13 @@ func (x *PatternFlowTcpCtlRst) Reset() { } } -func (x *PatternFlowTcpCtlRst) String() string { +func (x *PatternFlowTcpEcnNs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst) ProtoMessage() {} +func (*PatternFlowTcpEcnNs) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[520] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61716,47 +61867,47 @@ func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{520} } -func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { +func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlRst_Choice_unspecified + return PatternFlowTcpEcnNs_Choice_unspecified } -func (x *PatternFlowTcpCtlRst) GetValue() uint32 { +func (x *PatternFlowTcpEcnNs) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { +func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { +func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { if x != nil { return x.MetricTags } @@ -61764,7 +61915,7 @@ func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag } // integer counter pattern -type PatternFlowTcpCtlSynCounter struct { +type PatternFlowTcpEcnCwrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61780,8 +61931,8 @@ type PatternFlowTcpCtlSynCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlSynCounter) Reset() { - *x = PatternFlowTcpCtlSynCounter{} +func (x *PatternFlowTcpEcnCwrCounter) Reset() { + *x = PatternFlowTcpEcnCwrCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61789,13 +61940,13 @@ func (x *PatternFlowTcpCtlSynCounter) Reset() { } } -func (x *PatternFlowTcpCtlSynCounter) String() string { +func (x *PatternFlowTcpEcnCwrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[521] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61807,26 +61958,26 @@ func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{521} } -func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61836,7 +61987,7 @@ func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlSynMetricTag struct { +type PatternFlowTcpEcnCwrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61854,8 +62005,8 @@ type PatternFlowTcpCtlSynMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlSynMetricTag) Reset() { - *x = PatternFlowTcpCtlSynMetricTag{} +func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { + *x = PatternFlowTcpEcnCwrMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61863,13 +62014,13 @@ func (x *PatternFlowTcpCtlSynMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlSynMetricTag) String() string { +func (x *PatternFlowTcpEcnCwrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[522] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61881,41 +62032,41 @@ func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{522} } -func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { +func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Synchronize sequenece numbers. -type PatternFlowTcpCtlSyn struct { +// Explicit congestion notification, congestion window reduced. +type PatternFlowTcpEcnCwr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61923,17 +62074,17 @@ type PatternFlowTcpCtlSyn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlSyn) Reset() { - *x = PatternFlowTcpCtlSyn{} +func (x *PatternFlowTcpEcnCwr) Reset() { + *x = PatternFlowTcpEcnCwr{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61941,13 +62092,13 @@ func (x *PatternFlowTcpCtlSyn) Reset() { } } -func (x *PatternFlowTcpCtlSyn) String() string { +func (x *PatternFlowTcpEcnCwr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[523] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61959,47 +62110,47 @@ func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{523} } -func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { +func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlSyn_Choice_unspecified + return PatternFlowTcpEcnCwr_Choice_unspecified } -func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { +func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { +func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { +func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { if x != nil { return x.MetricTags } @@ -62007,7 +62158,7 @@ func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag } // integer counter pattern -type PatternFlowTcpCtlFinCounter struct { +type PatternFlowTcpEcnEchoCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62023,8 +62174,8 @@ type PatternFlowTcpCtlFinCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlFinCounter) Reset() { - *x = PatternFlowTcpCtlFinCounter{} +func (x *PatternFlowTcpEcnEchoCounter) Reset() { + *x = PatternFlowTcpEcnEchoCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62032,13 +62183,13 @@ func (x *PatternFlowTcpCtlFinCounter) Reset() { } } -func (x *PatternFlowTcpCtlFinCounter) String() string { +func (x *PatternFlowTcpEcnEchoCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[524] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62050,26 +62201,26 @@ func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{524} } -func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62079,7 +62230,7 @@ func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlFinMetricTag struct { +type PatternFlowTcpEcnEchoMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62097,8 +62248,8 @@ type PatternFlowTcpCtlFinMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlFinMetricTag) Reset() { - *x = PatternFlowTcpCtlFinMetricTag{} +func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { + *x = PatternFlowTcpEcnEchoMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62106,13 +62257,13 @@ func (x *PatternFlowTcpCtlFinMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlFinMetricTag) String() string { +func (x *PatternFlowTcpEcnEchoMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[525] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62124,41 +62275,42 @@ func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{525} } -func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { +func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Last packet from the sender. -type PatternFlowTcpCtlFin struct { +// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates +// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. +type PatternFlowTcpEcnEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62166,17 +62318,17 @@ type PatternFlowTcpCtlFin struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlFin) Reset() { - *x = PatternFlowTcpCtlFin{} +func (x *PatternFlowTcpEcnEcho) Reset() { + *x = PatternFlowTcpEcnEcho{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62184,13 +62336,13 @@ func (x *PatternFlowTcpCtlFin) Reset() { } } -func (x *PatternFlowTcpCtlFin) String() string { +func (x *PatternFlowTcpEcnEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[526] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62202,47 +62354,47 @@ func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{526} } -func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { +func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlFin_Choice_unspecified + return PatternFlowTcpEcnEcho_Choice_unspecified } -func (x *PatternFlowTcpCtlFin) GetValue() uint32 { +func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { +func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { +func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { if x != nil { return x.MetricTags } @@ -62250,7 +62402,7 @@ func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag } // integer counter pattern -type PatternFlowTcpWindowCounter struct { +type PatternFlowTcpCtlUrgCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62266,8 +62418,8 @@ type PatternFlowTcpWindowCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpWindowCounter) Reset() { - *x = PatternFlowTcpWindowCounter{} +func (x *PatternFlowTcpCtlUrgCounter) Reset() { + *x = PatternFlowTcpCtlUrgCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62275,13 +62427,13 @@ func (x *PatternFlowTcpWindowCounter) Reset() { } } -func (x *PatternFlowTcpWindowCounter) String() string { +func (x *PatternFlowTcpCtlUrgCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} -func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[527] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62293,26 +62445,26 @@ func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{527} } -func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62322,7 +62474,7 @@ func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpWindowMetricTag struct { +type PatternFlowTcpCtlUrgMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62336,12 +62488,12 @@ type PatternFlowTcpWindowMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpWindowMetricTag) Reset() { - *x = PatternFlowTcpWindowMetricTag{} +func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { + *x = PatternFlowTcpCtlUrgMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62349,13 +62501,13 @@ func (x *PatternFlowTcpWindowMetricTag) Reset() { } } -func (x *PatternFlowTcpWindowMetricTag) String() string { +func (x *PatternFlowTcpCtlUrgMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[528] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62367,41 +62519,41 @@ func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{528} } -func (x *PatternFlowTcpWindowMetricTag) GetName() string { +func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tcp connection window. -type PatternFlowTcpWindow struct { +// A value of 1 indicates that the urgent pointer field is significant. +type PatternFlowTcpCtlUrg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62409,17 +62561,17 @@ type PatternFlowTcpWindow struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpWindow) Reset() { - *x = PatternFlowTcpWindow{} +func (x *PatternFlowTcpCtlUrg) Reset() { + *x = PatternFlowTcpCtlUrg{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62427,13 +62579,13 @@ func (x *PatternFlowTcpWindow) Reset() { } } -func (x *PatternFlowTcpWindow) String() string { +func (x *PatternFlowTcpCtlUrg) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg) ProtoMessage() {} -func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[529] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62445,47 +62597,47 @@ func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{529} } -func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { +func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpWindow_Choice_unspecified + return PatternFlowTcpCtlUrg_Choice_unspecified } -func (x *PatternFlowTcpWindow) GetValue() uint32 { +func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpWindow) GetValues() []uint32 { +func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { +func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { if x != nil { return x.MetricTags } @@ -62493,7 +62645,7 @@ func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag } // integer counter pattern -type PatternFlowUdpSrcPortCounter struct { +type PatternFlowTcpCtlAckCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62509,8 +62661,8 @@ type PatternFlowUdpSrcPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpSrcPortCounter) Reset() { - *x = PatternFlowUdpSrcPortCounter{} +func (x *PatternFlowTcpCtlAckCounter) Reset() { + *x = PatternFlowTcpCtlAckCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62518,13 +62670,13 @@ func (x *PatternFlowUdpSrcPortCounter) Reset() { } } -func (x *PatternFlowUdpSrcPortCounter) String() string { +func (x *PatternFlowTcpCtlAckCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[530] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62536,26 +62688,26 @@ func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{530} } -func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62565,7 +62717,7 @@ func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpSrcPortMetricTag struct { +type PatternFlowTcpCtlAckMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62579,12 +62731,12 @@ type PatternFlowUdpSrcPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpSrcPortMetricTag) Reset() { - *x = PatternFlowUdpSrcPortMetricTag{} +func (x *PatternFlowTcpCtlAckMetricTag) Reset() { + *x = PatternFlowTcpCtlAckMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[531] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62592,13 +62744,13 @@ func (x *PatternFlowUdpSrcPortMetricTag) Reset() { } } -func (x *PatternFlowUdpSrcPortMetricTag) String() string { +func (x *PatternFlowTcpCtlAckMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[531] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62610,41 +62762,41 @@ func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{531} } -func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { +func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source port -type PatternFlowUdpSrcPort struct { +// A value of 1 indicates that the ackknowledgment field is significant. +type PatternFlowTcpCtlAck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62652,17 +62804,17 @@ type PatternFlowUdpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpSrcPort) Reset() { - *x = PatternFlowUdpSrcPort{} +func (x *PatternFlowTcpCtlAck) Reset() { + *x = PatternFlowTcpCtlAck{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[532] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62670,13 +62822,13 @@ func (x *PatternFlowUdpSrcPort) Reset() { } } -func (x *PatternFlowUdpSrcPort) String() string { +func (x *PatternFlowTcpCtlAck) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort) ProtoMessage() {} +func (*PatternFlowTcpCtlAck) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[532] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62688,47 +62840,47 @@ func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{532} } -func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { +func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpSrcPort_Choice_unspecified + return PatternFlowTcpCtlAck_Choice_unspecified } -func (x *PatternFlowUdpSrcPort) GetValue() uint32 { +func (x *PatternFlowTcpCtlAck) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { +func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { +func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { if x != nil { return x.MetricTags } @@ -62736,7 +62888,7 @@ func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTa } // integer counter pattern -type PatternFlowUdpDstPortCounter struct { +type PatternFlowTcpCtlPshCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62752,8 +62904,8 @@ type PatternFlowUdpDstPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpDstPortCounter) Reset() { - *x = PatternFlowUdpDstPortCounter{} +func (x *PatternFlowTcpCtlPshCounter) Reset() { + *x = PatternFlowTcpCtlPshCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[533] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62761,13 +62913,13 @@ func (x *PatternFlowUdpDstPortCounter) Reset() { } } -func (x *PatternFlowUdpDstPortCounter) String() string { +func (x *PatternFlowTcpCtlPshCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} -func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[533] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62779,26 +62931,26 @@ func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{533} } -func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62808,7 +62960,7 @@ func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpDstPortMetricTag struct { +type PatternFlowTcpCtlPshMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62822,12 +62974,12 @@ type PatternFlowUdpDstPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpDstPortMetricTag) Reset() { - *x = PatternFlowUdpDstPortMetricTag{} +func (x *PatternFlowTcpCtlPshMetricTag) Reset() { + *x = PatternFlowTcpCtlPshMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62835,13 +62987,13 @@ func (x *PatternFlowUdpDstPortMetricTag) Reset() { } } -func (x *PatternFlowUdpDstPortMetricTag) String() string { +func (x *PatternFlowTcpCtlPshMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[534] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62853,41 +63005,41 @@ func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{534} } -func (x *PatternFlowUdpDstPortMetricTag) GetName() string { +func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination port -type PatternFlowUdpDstPort struct { +// Asks to push the buffered data to the receiving application. +type PatternFlowTcpCtlPsh struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62895,17 +63047,17 @@ type PatternFlowUdpDstPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpDstPort) Reset() { - *x = PatternFlowUdpDstPort{} +func (x *PatternFlowTcpCtlPsh) Reset() { + *x = PatternFlowTcpCtlPsh{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[535] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62913,13 +63065,13 @@ func (x *PatternFlowUdpDstPort) Reset() { } } -func (x *PatternFlowUdpDstPort) String() string { +func (x *PatternFlowTcpCtlPsh) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh) ProtoMessage() {} -func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[535] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62931,47 +63083,47 @@ func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{535} } -func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { +func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpDstPort_Choice_unspecified + return PatternFlowTcpCtlPsh_Choice_unspecified } -func (x *PatternFlowUdpDstPort) GetValue() uint32 { +func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpDstPort) GetValues() []uint32 { +func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { +func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { if x != nil { return x.MetricTags } @@ -62979,7 +63131,7 @@ func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTa } // integer counter pattern -type PatternFlowUdpLengthCounter struct { +type PatternFlowTcpCtlRstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62995,8 +63147,8 @@ type PatternFlowUdpLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpLengthCounter) Reset() { - *x = PatternFlowUdpLengthCounter{} +func (x *PatternFlowTcpCtlRstCounter) Reset() { + *x = PatternFlowTcpCtlRstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[536] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63004,13 +63156,13 @@ func (x *PatternFlowUdpLengthCounter) Reset() { } } -func (x *PatternFlowUdpLengthCounter) String() string { +func (x *PatternFlowTcpCtlRstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} -func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[536] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63022,26 +63174,26 @@ func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{536} } -func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63051,7 +63203,7 @@ func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpLengthMetricTag struct { +type PatternFlowTcpCtlRstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63065,12 +63217,12 @@ type PatternFlowUdpLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpLengthMetricTag) Reset() { - *x = PatternFlowUdpLengthMetricTag{} +func (x *PatternFlowTcpCtlRstMetricTag) Reset() { + *x = PatternFlowTcpCtlRstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[537] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63078,13 +63230,13 @@ func (x *PatternFlowUdpLengthMetricTag) Reset() { } } -func (x *PatternFlowUdpLengthMetricTag) String() string { +func (x *PatternFlowTcpCtlRstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[537] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63096,41 +63248,41 @@ func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{537} } -func (x *PatternFlowUdpLengthMetricTag) GetName() string { +func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length -type PatternFlowUdpLength struct { +// Reset the connection. +type PatternFlowTcpCtlRst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63138,17 +63290,17 @@ type PatternFlowUdpLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpLength) Reset() { - *x = PatternFlowUdpLength{} +func (x *PatternFlowTcpCtlRst) Reset() { + *x = PatternFlowTcpCtlRst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[538] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63156,13 +63308,13 @@ func (x *PatternFlowUdpLength) Reset() { } } -func (x *PatternFlowUdpLength) String() string { +func (x *PatternFlowTcpCtlRst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength) ProtoMessage() {} +func (*PatternFlowTcpCtlRst) ProtoMessage() {} -func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[538] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63174,124 +63326,55 @@ func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{538} } -func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { +func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpLength_Choice_unspecified + return PatternFlowTcpCtlRst_Choice_unspecified } -func (x *PatternFlowUdpLength) GetValue() uint32 { +func (x *PatternFlowTcpCtlRst) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpLength) GetValues() []uint32 { +func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { +func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { if x != nil { return x.MetricTags } return nil } -// UDP checksum -type PatternFlowUdpChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowUdpChecksum) Reset() { - *x = PatternFlowUdpChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[539] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowUdpChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowUdpChecksum) ProtoMessage() {} - -func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[539] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539} -} - -func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowUdpChecksum_Choice_unspecified -} - -func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowUdpChecksum_Generated_unspecified -} - -func (x *PatternFlowUdpChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreChecksumPresentCounter struct { +type PatternFlowTcpCtlSynCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63307,23 +63390,23 @@ type PatternFlowGreChecksumPresentCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreChecksumPresentCounter) Reset() { - *x = PatternFlowGreChecksumPresentCounter{} +func (x *PatternFlowTcpCtlSynCounter) Reset() { + *x = PatternFlowTcpCtlSynCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[540] + mi := &file_otg_proto_msgTypes[539] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentCounter) String() string { +func (x *PatternFlowTcpCtlSynCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[540] +func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[539] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63334,26 +63417,26 @@ func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{540} +// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{539} } -func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63363,7 +63446,7 @@ func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreChecksumPresentMetricTag struct { +type PatternFlowTcpCtlSynMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63381,23 +63464,23 @@ type PatternFlowGreChecksumPresentMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { - *x = PatternFlowGreChecksumPresentMetricTag{} +func (x *PatternFlowTcpCtlSynMetricTag) Reset() { + *x = PatternFlowTcpCtlSynMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[541] + mi := &file_otg_proto_msgTypes[540] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentMetricTag) String() string { +func (x *PatternFlowTcpCtlSynMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[541] +func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[540] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63408,41 +63491,41 @@ func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541} +// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{540} } -func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { +func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Checksum present bit -type PatternFlowGreChecksumPresent struct { +// Synchronize sequenece numbers. +type PatternFlowTcpCtlSyn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63450,32 +63533,32 @@ type PatternFlowGreChecksumPresent struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreChecksumPresent) Reset() { - *x = PatternFlowGreChecksumPresent{} +func (x *PatternFlowTcpCtlSyn) Reset() { + *x = PatternFlowTcpCtlSyn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[542] + mi := &file_otg_proto_msgTypes[541] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent) String() string { +func (x *PatternFlowTcpCtlSyn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[542] +func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[541] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63486,47 +63569,47 @@ func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542} +// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541} } -func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { +func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreChecksumPresent_Choice_unspecified + return PatternFlowTcpCtlSyn_Choice_unspecified } -func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { +func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { +func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { +func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { if x != nil { return x.MetricTags } @@ -63534,7 +63617,7 @@ func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksu } // integer counter pattern -type PatternFlowGreReserved0Counter struct { +type PatternFlowTcpCtlFinCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63550,23 +63633,23 @@ type PatternFlowGreReserved0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved0Counter) Reset() { - *x = PatternFlowGreReserved0Counter{} +func (x *PatternFlowTcpCtlFinCounter) Reset() { + *x = PatternFlowTcpCtlFinCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[543] + mi := &file_otg_proto_msgTypes[542] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0Counter) String() string { +func (x *PatternFlowTcpCtlFinCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0Counter) ProtoMessage() {} +func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[543] +func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[542] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63577,26 +63660,26 @@ func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{543} +// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{542} } -func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63606,7 +63689,7 @@ func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreReserved0MetricTag struct { +type PatternFlowTcpCtlFinMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63620,27 +63703,27 @@ type PatternFlowGreReserved0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 12 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved0MetricTag) Reset() { - *x = PatternFlowGreReserved0MetricTag{} +func (x *PatternFlowTcpCtlFinMetricTag) Reset() { + *x = PatternFlowTcpCtlFinMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[544] + mi := &file_otg_proto_msgTypes[543] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0MetricTag) String() string { +func (x *PatternFlowTcpCtlFinMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[544] +func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[543] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63651,41 +63734,41 @@ func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544} +// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{543} } -func (x *PatternFlowGreReserved0MetricTag) GetName() string { +func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved bits -type PatternFlowGreReserved0 struct { +// Last packet from the sender. +type PatternFlowTcpCtlFin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63693,32 +63776,32 @@ type PatternFlowGreReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreReserved0) Reset() { - *x = PatternFlowGreReserved0{} +func (x *PatternFlowTcpCtlFin) Reset() { + *x = PatternFlowTcpCtlFin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[545] + mi := &file_otg_proto_msgTypes[544] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0) String() string { +func (x *PatternFlowTcpCtlFin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0) ProtoMessage() {} +func (*PatternFlowTcpCtlFin) ProtoMessage() {} -func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[545] +func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[544] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63729,47 +63812,47 @@ func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545} +// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544} } -func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { +func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved0_Choice_unspecified + return PatternFlowTcpCtlFin_Choice_unspecified } -func (x *PatternFlowGreReserved0) GetValue() uint32 { +func (x *PatternFlowTcpCtlFin) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved0) GetValues() []uint32 { +func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { +func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { if x != nil { return x.MetricTags } @@ -63777,7 +63860,7 @@ func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0Metr } // integer counter pattern -type PatternFlowGreVersionCounter struct { +type PatternFlowTcpWindowCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63793,23 +63876,23 @@ type PatternFlowGreVersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreVersionCounter) Reset() { - *x = PatternFlowGreVersionCounter{} +func (x *PatternFlowTcpWindowCounter) Reset() { + *x = PatternFlowTcpWindowCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[546] + mi := &file_otg_proto_msgTypes[545] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionCounter) String() string { +func (x *PatternFlowTcpWindowCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionCounter) ProtoMessage() {} +func (*PatternFlowTcpWindowCounter) ProtoMessage() {} -func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[546] +func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[545] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63820,26 +63903,26 @@ func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{546} +// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{545} } -func (x *PatternFlowGreVersionCounter) GetStart() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreVersionCounter) GetStep() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreVersionCounter) GetCount() uint32 { +func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63849,7 +63932,7 @@ func (x *PatternFlowGreVersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreVersionMetricTag struct { +type PatternFlowTcpWindowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63863,27 +63946,27 @@ type PatternFlowGreVersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreVersionMetricTag) Reset() { - *x = PatternFlowGreVersionMetricTag{} +func (x *PatternFlowTcpWindowMetricTag) Reset() { + *x = PatternFlowTcpWindowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[547] + mi := &file_otg_proto_msgTypes[546] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionMetricTag) String() string { +func (x *PatternFlowTcpWindowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} +func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} -func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[547] +func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[546] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63894,41 +63977,41 @@ func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547} +// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{546} } -func (x *PatternFlowGreVersionMetricTag) GetName() string { +func (x *PatternFlowTcpWindowMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GRE version number -type PatternFlowGreVersion struct { +// Tcp connection window. +type PatternFlowTcpWindow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63936,32 +64019,32 @@ type PatternFlowGreVersion struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreVersion) Reset() { - *x = PatternFlowGreVersion{} +func (x *PatternFlowTcpWindow) Reset() { + *x = PatternFlowTcpWindow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[548] + mi := &file_otg_proto_msgTypes[547] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion) String() string { +func (x *PatternFlowTcpWindow) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion) ProtoMessage() {} +func (*PatternFlowTcpWindow) ProtoMessage() {} -func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[548] +func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[547] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63972,47 +64055,47 @@ func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548} +// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547} } -func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { +func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreVersion_Choice_unspecified + return PatternFlowTcpWindow_Choice_unspecified } -func (x *PatternFlowGreVersion) GetValue() uint32 { +func (x *PatternFlowTcpWindow) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreVersion) GetValues() []uint32 { +func (x *PatternFlowTcpWindow) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { +func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { if x != nil { return x.MetricTags } @@ -64020,13 +64103,13 @@ func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTa } // integer counter pattern -type PatternFlowGreProtocolCounter struct { +type PatternFlowUdpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64036,23 +64119,23 @@ type PatternFlowGreProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreProtocolCounter) Reset() { - *x = PatternFlowGreProtocolCounter{} +func (x *PatternFlowUdpSrcPortCounter) Reset() { + *x = PatternFlowUdpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[549] + mi := &file_otg_proto_msgTypes[548] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolCounter) String() string { +func (x *PatternFlowUdpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolCounter) ProtoMessage() {} +func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[549] +func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[548] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64063,26 +64146,26 @@ func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{549} +// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{548} } -func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64092,7 +64175,7 @@ func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreProtocolMetricTag struct { +type PatternFlowUdpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64110,23 +64193,23 @@ type PatternFlowGreProtocolMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreProtocolMetricTag) Reset() { - *x = PatternFlowGreProtocolMetricTag{} +func (x *PatternFlowUdpSrcPortMetricTag) Reset() { + *x = PatternFlowUdpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[550] + mi := &file_otg_proto_msgTypes[549] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolMetricTag) String() string { +func (x *PatternFlowUdpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[550] +func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[549] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64137,74 +64220,74 @@ func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550} +// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{549} } -func (x *PatternFlowGreProtocolMetricTag) GetName() string { +func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type of encapsulated payload -type PatternFlowGreProtocol struct { +// Source port +type PatternFlowUdpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreProtocol) Reset() { - *x = PatternFlowGreProtocol{} +func (x *PatternFlowUdpSrcPort) Reset() { + *x = PatternFlowUdpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[551] + mi := &file_otg_proto_msgTypes[550] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol) String() string { +func (x *PatternFlowUdpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol) ProtoMessage() {} +func (*PatternFlowUdpSrcPort) ProtoMessage() {} -func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[551] +func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[550] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64215,125 +64298,55 @@ func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551} +// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550} } -func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { +func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreProtocol_Choice_unspecified + return PatternFlowUdpSrcPort_Choice_unspecified } -func (x *PatternFlowGreProtocol) GetValue() uint32 { +func (x *PatternFlowUdpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreProtocol) GetValues() []uint32 { +func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { +func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { if x != nil { return x.MetricTags } return nil } -// Optional checksum of GRE header and payload. Only present if the checksum_present -// bit is set. -type PatternFlowGreChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowGreChecksum) Reset() { - *x = PatternFlowGreChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[552] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowGreChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowGreChecksum) ProtoMessage() {} - -func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[552] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowGreChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552} -} - -func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowGreChecksum_Choice_unspecified -} - -func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowGreChecksum_Generated_unspecified -} - -func (x *PatternFlowGreChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreReserved1Counter struct { +type PatternFlowUdpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64349,23 +64362,23 @@ type PatternFlowGreReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved1Counter) Reset() { - *x = PatternFlowGreReserved1Counter{} +func (x *PatternFlowUdpDstPortCounter) Reset() { + *x = PatternFlowUdpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[553] + mi := &file_otg_proto_msgTypes[551] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1Counter) String() string { +func (x *PatternFlowUdpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1Counter) ProtoMessage() {} +func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[553] +func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[551] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64376,26 +64389,26 @@ func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553} +// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{551} } -func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64405,7 +64418,7 @@ func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreReserved1MetricTag struct { +type PatternFlowUdpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64423,23 +64436,23 @@ type PatternFlowGreReserved1MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved1MetricTag) Reset() { - *x = PatternFlowGreReserved1MetricTag{} +func (x *PatternFlowUdpDstPortMetricTag) Reset() { + *x = PatternFlowUdpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[554] + mi := &file_otg_proto_msgTypes[552] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1MetricTag) String() string { +func (x *PatternFlowUdpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} +func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[554] +func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[552] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64450,41 +64463,41 @@ func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{554} +// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{552} } -func (x *PatternFlowGreReserved1MetricTag) GetName() string { +func (x *PatternFlowUdpDstPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Optional reserved field. Only present if the checksum_present bit is set. -type PatternFlowGreReserved1 struct { +// Destination port +type PatternFlowUdpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -64492,32 +64505,32 @@ type PatternFlowGreReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreReserved1) Reset() { - *x = PatternFlowGreReserved1{} +func (x *PatternFlowUdpDstPort) Reset() { + *x = PatternFlowUdpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[555] + mi := &file_otg_proto_msgTypes[553] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1) String() string { +func (x *PatternFlowUdpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1) ProtoMessage() {} +func (*PatternFlowUdpDstPort) ProtoMessage() {} -func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[555] +func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[553] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64528,47 +64541,47 @@ func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555} +// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553} } -func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { +func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved1_Choice_unspecified + return PatternFlowUdpDstPort_Choice_unspecified } -func (x *PatternFlowGreReserved1) GetValue() uint32 { +func (x *PatternFlowUdpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved1) GetValues() []uint32 { +func (x *PatternFlowUdpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { +func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { if x != nil { return x.MetricTags } @@ -64576,13 +64589,13 @@ func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1Metr } // integer counter pattern -type PatternFlowGtpv1VersionCounter struct { +type PatternFlowUdpLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64592,23 +64605,23 @@ type PatternFlowGtpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1VersionCounter) Reset() { - *x = PatternFlowGtpv1VersionCounter{} +func (x *PatternFlowUdpLengthCounter) Reset() { + *x = PatternFlowUdpLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[556] + mi := &file_otg_proto_msgTypes[554] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionCounter) String() string { +func (x *PatternFlowUdpLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowUdpLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[556] +func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[554] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64619,26 +64632,26 @@ func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556} +// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{554} } -func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64648,7 +64661,7 @@ func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1VersionMetricTag struct { +type PatternFlowUdpLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64662,27 +64675,27 @@ type PatternFlowGtpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1VersionMetricTag) Reset() { - *x = PatternFlowGtpv1VersionMetricTag{} +func (x *PatternFlowUdpLengthMetricTag) Reset() { + *x = PatternFlowUdpLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[557] + mi := &file_otg_proto_msgTypes[555] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionMetricTag) String() string { +func (x *PatternFlowUdpLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[557] +func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[555] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64693,74 +64706,74 @@ func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{557} +// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{555} } -func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { +func (x *PatternFlowUdpLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GTPv1 version -type PatternFlowGtpv1Version struct { +// Length +type PatternFlowUdpLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Version) Reset() { - *x = PatternFlowGtpv1Version{} +func (x *PatternFlowUdpLength) Reset() { + *x = PatternFlowUdpLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[558] + mi := &file_otg_proto_msgTypes[556] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version) String() string { +func (x *PatternFlowUdpLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version) ProtoMessage() {} +func (*PatternFlowUdpLength) ProtoMessage() {} -func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[558] +func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[556] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64771,61 +64784,130 @@ func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558} +// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556} } -func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { +func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Version_Choice_unspecified + return PatternFlowUdpLength_Choice_unspecified } -func (x *PatternFlowGtpv1Version) GetValue() uint32 { +func (x *PatternFlowUdpLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Version) GetValues() []uint32 { +func (x *PatternFlowUdpLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { +func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { if x != nil { return x.MetricTags } return nil } +// UDP checksum +type PatternFlowUdpChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowUdpChecksum) Reset() { + *x = PatternFlowUdpChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[557] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowUdpChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowUdpChecksum) ProtoMessage() {} + +func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[557] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557} +} + +func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowUdpChecksum_Choice_unspecified +} + +func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowUdpChecksum_Generated_unspecified +} + +func (x *PatternFlowUdpChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv1ProtocolTypeCounter struct { +type PatternFlowGreChecksumPresentCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64835,23 +64917,23 @@ type PatternFlowGtpv1ProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { - *x = PatternFlowGtpv1ProtocolTypeCounter{} +func (x *PatternFlowGreChecksumPresentCounter) Reset() { + *x = PatternFlowGreChecksumPresentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[559] + mi := &file_otg_proto_msgTypes[558] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { +func (x *PatternFlowGreChecksumPresentCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[559] +func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[558] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64862,26 +64944,26 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559} +// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{558} } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64891,7 +64973,7 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1ProtocolTypeMetricTag struct { +type PatternFlowGreChecksumPresentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64909,23 +64991,23 @@ type PatternFlowGtpv1ProtocolTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { - *x = PatternFlowGtpv1ProtocolTypeMetricTag{} +func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { + *x = PatternFlowGreChecksumPresentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[560] + mi := &file_otg_proto_msgTypes[559] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { +func (x *PatternFlowGreChecksumPresentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[560] +func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[559] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64936,74 +65018,74 @@ func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{560} +// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{559} } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type, GTP is 1, GTP' is 0 -type PatternFlowGtpv1ProtocolType struct { +// Checksum present bit +type PatternFlowGreChecksumPresent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1ProtocolType) Reset() { - *x = PatternFlowGtpv1ProtocolType{} +func (x *PatternFlowGreChecksumPresent) Reset() { + *x = PatternFlowGreChecksumPresent{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[561] + mi := &file_otg_proto_msgTypes[560] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType) String() string { +func (x *PatternFlowGreChecksumPresent) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[561] +func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[560] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65014,47 +65096,47 @@ func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561} +// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560} } -func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { +func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1ProtocolType_Choice_unspecified + return PatternFlowGreChecksumPresent_Choice_unspecified } -func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { +func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { +func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { +func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { if x != nil { return x.MetricTags } @@ -65062,7 +65144,7 @@ func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1Protoc } // integer counter pattern -type PatternFlowGtpv1ReservedCounter struct { +type PatternFlowGreReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65078,23 +65160,23 @@ type PatternFlowGtpv1ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ReservedCounter) Reset() { - *x = PatternFlowGtpv1ReservedCounter{} +func (x *PatternFlowGreReserved0Counter) Reset() { + *x = PatternFlowGreReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[562] + mi := &file_otg_proto_msgTypes[561] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedCounter) String() string { +func (x *PatternFlowGreReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} +func (*PatternFlowGreReserved0Counter) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[562] +func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[561] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65105,26 +65187,26 @@ func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562} +// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{561} } -func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { +func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65134,7 +65216,7 @@ func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1ReservedMetricTag struct { +type PatternFlowGreReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65148,27 +65230,27 @@ type PatternFlowGtpv1ReservedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 12 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { - *x = PatternFlowGtpv1ReservedMetricTag{} +func (x *PatternFlowGreReserved0MetricTag) Reset() { + *x = PatternFlowGreReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[563] + mi := &file_otg_proto_msgTypes[562] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedMetricTag) String() string { +func (x *PatternFlowGreReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[563] +func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[562] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65179,41 +65261,41 @@ func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{563} +// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{562} } -func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { +func (x *PatternFlowGreReserved0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv1Reserved struct { +// Reserved bits +type PatternFlowGreReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65221,32 +65303,32 @@ type PatternFlowGtpv1Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Reserved) Reset() { - *x = PatternFlowGtpv1Reserved{} +func (x *PatternFlowGreReserved0) Reset() { + *x = PatternFlowGreReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[564] + mi := &file_otg_proto_msgTypes[563] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved) String() string { +func (x *PatternFlowGreReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved) ProtoMessage() {} +func (*PatternFlowGreReserved0) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[564] +func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[563] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65257,47 +65339,47 @@ func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564} +// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563} } -func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { +func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Reserved_Choice_unspecified + return PatternFlowGreReserved0_Choice_unspecified } -func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { +func (x *PatternFlowGreReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { +func (x *PatternFlowGreReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { +func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { if x != nil { return x.MetricTags } @@ -65305,7 +65387,7 @@ func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMe } // integer counter pattern -type PatternFlowGtpv1EFlagCounter struct { +type PatternFlowGreVersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65321,23 +65403,23 @@ type PatternFlowGtpv1EFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1EFlagCounter) Reset() { - *x = PatternFlowGtpv1EFlagCounter{} +func (x *PatternFlowGreVersionCounter) Reset() { + *x = PatternFlowGreVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[565] + mi := &file_otg_proto_msgTypes[564] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagCounter) String() string { +func (x *PatternFlowGreVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} +func (*PatternFlowGreVersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[565] +func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[564] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65348,26 +65430,26 @@ func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565} +// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{564} } -func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreVersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreVersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreVersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65377,7 +65459,7 @@ func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1EFlagMetricTag struct { +type PatternFlowGreVersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65391,27 +65473,27 @@ type PatternFlowGtpv1EFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { - *x = PatternFlowGtpv1EFlagMetricTag{} +func (x *PatternFlowGreVersionMetricTag) Reset() { + *x = PatternFlowGreVersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[566] + mi := &file_otg_proto_msgTypes[565] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagMetricTag) String() string { +func (x *PatternFlowGreVersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[566] +func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[565] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65422,41 +65504,41 @@ func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{566} +// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{565} } -func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { +func (x *PatternFlowGreVersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Extension header field present -type PatternFlowGtpv1EFlag struct { +// GRE version number +type PatternFlowGreVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65464,32 +65546,32 @@ type PatternFlowGtpv1EFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1EFlag) Reset() { - *x = PatternFlowGtpv1EFlag{} +func (x *PatternFlowGreVersion) Reset() { + *x = PatternFlowGreVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[567] + mi := &file_otg_proto_msgTypes[566] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag) String() string { +func (x *PatternFlowGreVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag) ProtoMessage() {} +func (*PatternFlowGreVersion) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[567] +func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[566] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65500,47 +65582,47 @@ func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567} +// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566} } -func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { +func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1EFlag_Choice_unspecified + return PatternFlowGreVersion_Choice_unspecified } -func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { +func (x *PatternFlowGreVersion) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { +func (x *PatternFlowGreVersion) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { +func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { if x != nil { return x.MetricTags } @@ -65548,13 +65630,13 @@ func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTa } // integer counter pattern -type PatternFlowGtpv1SFlagCounter struct { +type PatternFlowGreProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2048 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -65564,23 +65646,23 @@ type PatternFlowGtpv1SFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SFlagCounter) Reset() { - *x = PatternFlowGtpv1SFlagCounter{} +func (x *PatternFlowGreProtocolCounter) Reset() { + *x = PatternFlowGreProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[568] + mi := &file_otg_proto_msgTypes[567] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagCounter) String() string { +func (x *PatternFlowGreProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} +func (*PatternFlowGreProtocolCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[568] +func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[567] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65591,26 +65673,26 @@ func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568} +// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{567} } -func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65620,7 +65702,7 @@ func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1SFlagMetricTag struct { +type PatternFlowGreProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65634,27 +65716,27 @@ type PatternFlowGtpv1SFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { - *x = PatternFlowGtpv1SFlagMetricTag{} +func (x *PatternFlowGreProtocolMetricTag) Reset() { + *x = PatternFlowGreProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[569] + mi := &file_otg_proto_msgTypes[568] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagMetricTag) String() string { +func (x *PatternFlowGreProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[569] +func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[568] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65665,74 +65747,74 @@ func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{569} +// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{568} } -func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { +func (x *PatternFlowGreProtocolMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number field present -type PatternFlowGtpv1SFlag struct { +// Protocol type of encapsulated payload +type PatternFlowGreProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2048 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SFlag) Reset() { - *x = PatternFlowGtpv1SFlag{} +func (x *PatternFlowGreProtocol) Reset() { + *x = PatternFlowGreProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[570] + mi := &file_otg_proto_msgTypes[569] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag) String() string { +func (x *PatternFlowGreProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag) ProtoMessage() {} +func (*PatternFlowGreProtocol) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[570] +func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[569] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65743,55 +65825,125 @@ func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570} +// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569} } -func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { +func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SFlag_Choice_unspecified + return PatternFlowGreProtocol_Choice_unspecified } -func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { +func (x *PatternFlowGreProtocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { +func (x *PatternFlowGreProtocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { +func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { if x != nil { return x.MetricTags } return nil } +// Optional checksum of GRE header and payload. Only present if the checksum_present +// bit is set. +type PatternFlowGreChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowGreChecksum) Reset() { + *x = PatternFlowGreChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[570] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGreChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGreChecksum) ProtoMessage() {} + +func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[570] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowGreChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570} +} + +func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowGreChecksum_Choice_unspecified +} + +func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowGreChecksum_Generated_unspecified +} + +func (x *PatternFlowGreChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv1PnFlagCounter struct { +type PatternFlowGreReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65807,8 +65959,8 @@ type PatternFlowGtpv1PnFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1PnFlagCounter) Reset() { - *x = PatternFlowGtpv1PnFlagCounter{} +func (x *PatternFlowGreReserved1Counter) Reset() { + *x = PatternFlowGreReserved1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[571] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65816,13 +65968,13 @@ func (x *PatternFlowGtpv1PnFlagCounter) Reset() { } } -func (x *PatternFlowGtpv1PnFlagCounter) String() string { +func (x *PatternFlowGreReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} +func (*PatternFlowGreReserved1Counter) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[571] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65834,26 +65986,26 @@ func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{571} } -func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65863,7 +66015,7 @@ func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1PnFlagMetricTag struct { +type PatternFlowGreReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65877,12 +66029,12 @@ type PatternFlowGtpv1PnFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { - *x = PatternFlowGtpv1PnFlagMetricTag{} +func (x *PatternFlowGreReserved1MetricTag) Reset() { + *x = PatternFlowGreReserved1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[572] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65890,13 +66042,13 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { +func (x *PatternFlowGreReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[572] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65908,41 +66060,41 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{572} } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { +func (x *PatternFlowGreReserved1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU field present -type PatternFlowGtpv1PnFlag struct { +// Optional reserved field. Only present if the checksum_present bit is set. +type PatternFlowGreReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65950,17 +66102,17 @@ type PatternFlowGtpv1PnFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1PnFlag) Reset() { - *x = PatternFlowGtpv1PnFlag{} +func (x *PatternFlowGreReserved1) Reset() { + *x = PatternFlowGreReserved1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[573] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65968,13 +66120,13 @@ func (x *PatternFlowGtpv1PnFlag) Reset() { } } -func (x *PatternFlowGtpv1PnFlag) String() string { +func (x *PatternFlowGreReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} +func (*PatternFlowGreReserved1) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[573] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65986,47 +66138,47 @@ func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{573} } -func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { +func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1PnFlag_Choice_unspecified + return PatternFlowGreReserved1_Choice_unspecified } -func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { +func (x *PatternFlowGreReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { +func (x *PatternFlowGreReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { +func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { if x != nil { return x.MetricTags } @@ -66034,13 +66186,13 @@ func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetric } // integer counter pattern -type PatternFlowGtpv1MessageTypeCounter struct { +type PatternFlowGtpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -66050,8 +66202,8 @@ type PatternFlowGtpv1MessageTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { - *x = PatternFlowGtpv1MessageTypeCounter{} +func (x *PatternFlowGtpv1VersionCounter) Reset() { + *x = PatternFlowGtpv1VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[574] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66059,13 +66211,13 @@ func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { } } -func (x *PatternFlowGtpv1MessageTypeCounter) String() string { +func (x *PatternFlowGtpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[574] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66077,26 +66229,26 @@ func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{574} } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66106,7 +66258,7 @@ func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1MessageTypeMetricTag struct { +type PatternFlowGtpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66120,12 +66272,12 @@ type PatternFlowGtpv1MessageTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv1MessageTypeMetricTag{} +func (x *PatternFlowGtpv1VersionMetricTag) Reset() { + *x = PatternFlowGtpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[575] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66133,13 +66285,13 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { +func (x *PatternFlowGtpv1VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[575] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66151,60 +66303,59 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{575} } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 -// section 7.1 -type PatternFlowGtpv1MessageType struct { +// GTPv1 version +type PatternFlowGtpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageType) Reset() { - *x = PatternFlowGtpv1MessageType{} +func (x *PatternFlowGtpv1Version) Reset() { + *x = PatternFlowGtpv1Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[576] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66212,13 +66363,13 @@ func (x *PatternFlowGtpv1MessageType) Reset() { } } -func (x *PatternFlowGtpv1MessageType) String() string { +func (x *PatternFlowGtpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType) ProtoMessage() {} +func (*PatternFlowGtpv1Version) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[576] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66230,47 +66381,47 @@ func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{576} } -func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { +func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageType_Choice_unspecified + return PatternFlowGtpv1Version_Choice_unspecified } -func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { +func (x *PatternFlowGtpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { +func (x *PatternFlowGtpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { +func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { if x != nil { return x.MetricTags } @@ -66278,13 +66429,13 @@ func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1Message } // integer counter pattern -type PatternFlowGtpv1MessageLengthCounter struct { +type PatternFlowGtpv1ProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -66294,8 +66445,8 @@ type PatternFlowGtpv1MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { - *x = PatternFlowGtpv1MessageLengthCounter{} +func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { + *x = PatternFlowGtpv1ProtocolTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[577] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66303,13 +66454,13 @@ func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { } } -func (x *PatternFlowGtpv1MessageLengthCounter) String() string { +func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[577] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66321,26 +66472,26 @@ func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{577} } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66350,7 +66501,7 @@ func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1MessageLengthMetricTag struct { +type PatternFlowGtpv1ProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66364,12 +66515,12 @@ type PatternFlowGtpv1MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv1MessageLengthMetricTag{} +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { + *x = PatternFlowGtpv1ProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[578] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66377,13 +66528,13 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[578] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66395,60 +66546,59 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{578} } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The length of the payload (the bytes following the mandatory 8-byte GTP header) in -// bytes that includes any optional fields -type PatternFlowGtpv1MessageLength struct { +// Protocol type, GTP is 1, GTP' is 0 +type PatternFlowGtpv1ProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageLength) Reset() { - *x = PatternFlowGtpv1MessageLength{} +func (x *PatternFlowGtpv1ProtocolType) Reset() { + *x = PatternFlowGtpv1ProtocolType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[579] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66456,13 +66606,13 @@ func (x *PatternFlowGtpv1MessageLength) Reset() { } } -func (x *PatternFlowGtpv1MessageLength) String() string { +func (x *PatternFlowGtpv1ProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[579] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66474,47 +66624,47 @@ func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{579} } -func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { +func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageLength_Choice_unspecified + return PatternFlowGtpv1ProtocolType_Choice_unspecified } -func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { +func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -66522,7 +66672,7 @@ func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1Messa } // integer counter pattern -type PatternFlowGtpv1TeidCounter struct { +type PatternFlowGtpv1ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66538,8 +66688,8 @@ type PatternFlowGtpv1TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1TeidCounter) Reset() { - *x = PatternFlowGtpv1TeidCounter{} +func (x *PatternFlowGtpv1ReservedCounter) Reset() { + *x = PatternFlowGtpv1ReservedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[580] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66547,13 +66697,13 @@ func (x *PatternFlowGtpv1TeidCounter) Reset() { } } -func (x *PatternFlowGtpv1TeidCounter) String() string { +func (x *PatternFlowGtpv1ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[580] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66565,26 +66715,26 @@ func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{580} } -func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66594,7 +66744,7 @@ func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1TeidMetricTag struct { +type PatternFlowGtpv1ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66608,12 +66758,12 @@ type PatternFlowGtpv1TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1TeidMetricTag) Reset() { - *x = PatternFlowGtpv1TeidMetricTag{} +func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { + *x = PatternFlowGtpv1ReservedMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[581] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66621,13 +66771,13 @@ func (x *PatternFlowGtpv1TeidMetricTag) Reset() { } } -func (x *PatternFlowGtpv1TeidMetricTag) String() string { +func (x *PatternFlowGtpv1ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[581] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66639,41 +66789,41 @@ func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{581} } -func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { +func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel -type PatternFlowGtpv1Teid struct { +// Reserved field +type PatternFlowGtpv1Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -66681,17 +66831,17 @@ type PatternFlowGtpv1Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Teid) Reset() { - *x = PatternFlowGtpv1Teid{} +func (x *PatternFlowGtpv1Reserved) Reset() { + *x = PatternFlowGtpv1Reserved{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[582] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66699,13 +66849,13 @@ func (x *PatternFlowGtpv1Teid) Reset() { } } -func (x *PatternFlowGtpv1Teid) String() string { +func (x *PatternFlowGtpv1Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[582] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66717,47 +66867,47 @@ func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{582} } -func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { +func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Teid_Choice_unspecified + return PatternFlowGtpv1Reserved_Choice_unspecified } -func (x *PatternFlowGtpv1Teid) GetValue() uint32 { +func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { +func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { +func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { if x != nil { return x.MetricTags } @@ -66765,7 +66915,7 @@ func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag } // integer counter pattern -type PatternFlowGtpv1SquenceNumberCounter struct { +type PatternFlowGtpv1EFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66781,8 +66931,8 @@ type PatternFlowGtpv1SquenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { - *x = PatternFlowGtpv1SquenceNumberCounter{} +func (x *PatternFlowGtpv1EFlagCounter) Reset() { + *x = PatternFlowGtpv1EFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[583] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66790,13 +66940,13 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { +func (x *PatternFlowGtpv1EFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[583] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66808,26 +66958,26 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{583} } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66837,7 +66987,7 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1SquenceNumberMetricTag struct { +type PatternFlowGtpv1EFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66851,12 +67001,12 @@ type PatternFlowGtpv1SquenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv1SquenceNumberMetricTag{} +func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { + *x = PatternFlowGtpv1EFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[584] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66864,13 +67014,13 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv1EFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[584] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66882,42 +67032,41 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{584} } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the s_flag bit is on. -type PatternFlowGtpv1SquenceNumber struct { +// Extension header field present +type PatternFlowGtpv1EFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -66925,17 +67074,17 @@ type PatternFlowGtpv1SquenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumber) Reset() { - *x = PatternFlowGtpv1SquenceNumber{} +func (x *PatternFlowGtpv1EFlag) Reset() { + *x = PatternFlowGtpv1EFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[585] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66943,13 +67092,13 @@ func (x *PatternFlowGtpv1SquenceNumber) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumber) String() string { +func (x *PatternFlowGtpv1EFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[585] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66961,47 +67110,47 @@ func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{585} } -func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { +func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SquenceNumber_Choice_unspecified + return PatternFlowGtpv1EFlag_Choice_unspecified } -func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { +func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { if x != nil { return x.MetricTags } @@ -67009,7 +67158,7 @@ func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1Squen } // integer counter pattern -type PatternFlowGtpv1NPduNumberCounter struct { +type PatternFlowGtpv1SFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67025,8 +67174,8 @@ type PatternFlowGtpv1NPduNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { - *x = PatternFlowGtpv1NPduNumberCounter{} +func (x *PatternFlowGtpv1SFlagCounter) Reset() { + *x = PatternFlowGtpv1SFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[586] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67034,13 +67183,13 @@ func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { } } -func (x *PatternFlowGtpv1NPduNumberCounter) String() string { +func (x *PatternFlowGtpv1SFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[586] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67052,26 +67201,26 @@ func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{586} } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67081,7 +67230,7 @@ func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1NPduNumberMetricTag struct { +type PatternFlowGtpv1SFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67095,12 +67244,12 @@ type PatternFlowGtpv1NPduNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { - *x = PatternFlowGtpv1NPduNumberMetricTag{} +func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { + *x = PatternFlowGtpv1SFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[587] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67108,13 +67257,13 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { +func (x *PatternFlowGtpv1SFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[587] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67126,42 +67275,41 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{587} } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the pn_flag bit is on. -type PatternFlowGtpv1NPduNumber struct { +// Sequence number field present +type PatternFlowGtpv1SFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67169,17 +67317,17 @@ type PatternFlowGtpv1NPduNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1NPduNumber) Reset() { - *x = PatternFlowGtpv1NPduNumber{} +func (x *PatternFlowGtpv1SFlag) Reset() { + *x = PatternFlowGtpv1SFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[588] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67187,13 +67335,13 @@ func (x *PatternFlowGtpv1NPduNumber) Reset() { } } -func (x *PatternFlowGtpv1NPduNumber) String() string { +func (x *PatternFlowGtpv1SFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[588] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67205,47 +67353,47 @@ func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{588} } -func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { +func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NPduNumber_Choice_unspecified + return PatternFlowGtpv1SFlag_Choice_unspecified } -func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { +func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { +func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { if x != nil { return x.MetricTags } @@ -67253,7 +67401,7 @@ func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumb } // integer counter pattern -type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { +type PatternFlowGtpv1PnFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67269,8 +67417,8 @@ type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} +func (x *PatternFlowGtpv1PnFlagCounter) Reset() { + *x = PatternFlowGtpv1PnFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[589] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67278,13 +67426,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { +func (x *PatternFlowGtpv1PnFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[589] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67296,26 +67444,26 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{589} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67325,7 +67473,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { +type PatternFlowGtpv1PnFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67339,12 +67487,12 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} +func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { + *x = PatternFlowGtpv1PnFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[590] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67352,13 +67500,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[590] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67370,42 +67518,41 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{590} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. -// Must be interpreted only if the e_flag bit is on. -type PatternFlowGtpv1NextExtensionHeaderType struct { +// N-PDU field present +type PatternFlowGtpv1PnFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67413,17 +67560,17 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType{} +func (x *PatternFlowGtpv1PnFlag) Reset() { + *x = PatternFlowGtpv1PnFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[591] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67431,13 +67578,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { +func (x *PatternFlowGtpv1PnFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[591] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67449,47 +67596,47 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{591} } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { +func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified + return PatternFlowGtpv1PnFlag_Choice_unspecified } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { +func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { if x != nil { return x.MetricTags } @@ -67497,7 +67644,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlow } // integer counter pattern -type PatternFlowGtpExtensionExtensionLengthCounter struct { +type PatternFlowGtpv1MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67513,8 +67660,8 @@ type PatternFlowGtpExtensionExtensionLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthCounter{} +func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { + *x = PatternFlowGtpv1MessageTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[592] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67522,13 +67669,13 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { +func (x *PatternFlowGtpv1MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[592] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67540,26 +67687,26 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{592} } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67569,7 +67716,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionExtensionLengthMetricTag struct { +type PatternFlowGtpv1MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67587,8 +67734,8 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} +func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv1MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[593] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67596,13 +67743,13 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[593] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67614,43 +67761,42 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{593} } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// This field states the length of this extension header, including the length, the -// contents, and the next extension header field, in 4-octet units, so the length of -// the extension must always be a multiple of 4. -type PatternFlowGtpExtensionExtensionLength struct { +// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 +// section 7.1 +type PatternFlowGtpv1MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67658,17 +67804,17 @@ type PatternFlowGtpExtensionExtensionLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLength) Reset() { - *x = PatternFlowGtpExtensionExtensionLength{} +func (x *PatternFlowGtpv1MessageType) Reset() { + *x = PatternFlowGtpv1MessageType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[594] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67676,13 +67822,13 @@ func (x *PatternFlowGtpExtensionExtensionLength) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLength) String() string { +func (x *PatternFlowGtpv1MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[594] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67694,47 +67840,47 @@ func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{594} } -func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { +func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionExtensionLength_Choice_unspecified + return PatternFlowGtpv1MessageType_Choice_unspecified } -func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { +func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { +func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -67742,24 +67888,24 @@ func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowG } // integer counter pattern -type PatternFlowGtpExtensionContentsCounter struct { +type PatternFlowGtpv1MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = 0 - Start *uint64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 - Step *uint64 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 - Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionContentsCounter) Reset() { - *x = PatternFlowGtpExtensionContentsCounter{} +func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { + *x = PatternFlowGtpv1MessageLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[595] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67767,13 +67913,13 @@ func (x *PatternFlowGtpExtensionContentsCounter) Reset() { } } -func (x *PatternFlowGtpExtensionContentsCounter) String() string { +func (x *PatternFlowGtpv1MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[595] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67785,26 +67931,26 @@ func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{595} } -func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67814,7 +67960,7 @@ func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionContentsMetricTag struct { +type PatternFlowGtpv1MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67825,15 +67971,15 @@ type PatternFlowGtpExtensionContentsMetricTag struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 - Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { - *x = PatternFlowGtpExtensionContentsMetricTag{} +func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv1MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[596] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67841,13 +67987,13 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[596] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67859,59 +68005,60 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{596} } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The extension header contents -type PatternFlowGtpExtensionContents struct { +// The length of the payload (the bytes following the mandatory 8-byte GTP header) in +// bytes that includes any optional fields +type PatternFlowGtpv1MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] - Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionContents) Reset() { - *x = PatternFlowGtpExtensionContents{} +func (x *PatternFlowGtpv1MessageLength) Reset() { + *x = PatternFlowGtpv1MessageLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[597] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67919,13 +68066,13 @@ func (x *PatternFlowGtpExtensionContents) Reset() { } } -func (x *PatternFlowGtpExtensionContents) String() string { +func (x *PatternFlowGtpv1MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[597] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67937,47 +68084,47 @@ func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{597} } -func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { +func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionContents_Choice_unspecified + return PatternFlowGtpv1MessageLength_Choice_unspecified } -func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { +func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { +func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { +func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -67985,7 +68132,7 @@ func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExten } // integer counter pattern -type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { +type PatternFlowGtpv1TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68001,8 +68148,8 @@ type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} +func (x *PatternFlowGtpv1TeidCounter) Reset() { + *x = PatternFlowGtpv1TeidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[598] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68010,13 +68157,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { +func (x *PatternFlowGtpv1TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} +func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[598] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68028,26 +68175,26 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{598} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68057,7 +68204,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { +type PatternFlowGtpv1TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68071,12 +68218,12 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} +func (x *PatternFlowGtpv1TeidMetricTag) Reset() { + *x = PatternFlowGtpv1TeidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[599] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68084,13 +68231,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { +func (x *PatternFlowGtpv1TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[599] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68102,42 +68249,41 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{599} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { +func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// It states the type of the next extension, or 0 if no next extension exists. This -// permits chaining several next extension headers. -type PatternFlowGtpExtensionNextExtensionHeader struct { +// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel +type PatternFlowGtpv1Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68145,17 +68291,17 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader{} +func (x *PatternFlowGtpv1Teid) Reset() { + *x = PatternFlowGtpv1Teid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[600] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68163,13 +68309,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { +func (x *PatternFlowGtpv1Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} +func (*PatternFlowGtpv1Teid) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[600] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68181,47 +68327,47 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{600} } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { +func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified + return PatternFlowGtpv1Teid_Choice_unspecified } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { +func (x *PatternFlowGtpv1Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { +func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { +func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { if x != nil { return x.MetricTags } @@ -68229,13 +68375,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternF } // integer counter pattern -type PatternFlowGtpv2VersionCounter struct { +type PatternFlowGtpv1SquenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -68245,8 +68391,8 @@ type PatternFlowGtpv2VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2VersionCounter) Reset() { - *x = PatternFlowGtpv2VersionCounter{} +func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { + *x = PatternFlowGtpv1SquenceNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[601] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68254,13 +68400,13 @@ func (x *PatternFlowGtpv2VersionCounter) Reset() { } } -func (x *PatternFlowGtpv2VersionCounter) String() string { +func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[601] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68272,26 +68418,26 @@ func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{601} } -func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68301,7 +68447,7 @@ func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2VersionMetricTag struct { +type PatternFlowGtpv1SquenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68315,12 +68461,12 @@ type PatternFlowGtpv2VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2VersionMetricTag) Reset() { - *x = PatternFlowGtpv2VersionMetricTag{} +func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv1SquenceNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[602] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68328,13 +68474,13 @@ func (x *PatternFlowGtpv2VersionMetricTag) Reset() { } } -func (x *PatternFlowGtpv2VersionMetricTag) String() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[602] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68346,59 +68492,60 @@ func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{602} } -func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowGtpv2Version struct { +// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the s_flag bit is on. +type PatternFlowGtpv1SquenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Version) Reset() { - *x = PatternFlowGtpv2Version{} +func (x *PatternFlowGtpv1SquenceNumber) Reset() { + *x = PatternFlowGtpv1SquenceNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[603] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68406,13 +68553,13 @@ func (x *PatternFlowGtpv2Version) Reset() { } } -func (x *PatternFlowGtpv2Version) String() string { +func (x *PatternFlowGtpv1SquenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} -func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[603] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68424,47 +68571,47 @@ func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{603} } -func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { +func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Version_Choice_unspecified + return PatternFlowGtpv1SquenceNumber_Choice_unspecified } -func (x *PatternFlowGtpv2Version) GetValue() uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Version) GetValues() []uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { +func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { if x != nil { return x.MetricTags } @@ -68472,7 +68619,7 @@ func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetr } // integer counter pattern -type PatternFlowGtpv2PiggybackingFlagCounter struct { +type PatternFlowGtpv1NPduNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68488,8 +68635,8 @@ type PatternFlowGtpv2PiggybackingFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagCounter{} +func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { + *x = PatternFlowGtpv1NPduNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[604] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68497,13 +68644,13 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { +func (x *PatternFlowGtpv1NPduNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[604] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68515,26 +68662,26 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{604} } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68544,7 +68691,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2PiggybackingFlagMetricTag struct { +type PatternFlowGtpv1NPduNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68558,12 +68705,12 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} +func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { + *x = PatternFlowGtpv1NPduNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[605] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68571,13 +68718,13 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[605] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68589,42 +68736,42 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{605} } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall -// be present at the end of the current message -type PatternFlowGtpv2PiggybackingFlag struct { +// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the pn_flag bit is on. +type PatternFlowGtpv1NPduNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68632,17 +68779,17 @@ type PatternFlowGtpv2PiggybackingFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag{} +func (x *PatternFlowGtpv1NPduNumber) Reset() { + *x = PatternFlowGtpv1NPduNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[606] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68650,13 +68797,13 @@ func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlag) String() string { +func (x *PatternFlowGtpv1NPduNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[606] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68668,47 +68815,47 @@ func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{606} } -func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { +func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified + return PatternFlowGtpv1NPduNumber_Choice_unspecified } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { +func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { +func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { +func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { if x != nil { return x.MetricTags } @@ -68716,7 +68863,7 @@ func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2Pi } // integer counter pattern -type PatternFlowGtpv2TeidFlagCounter struct { +type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68732,8 +68879,8 @@ type PatternFlowGtpv2TeidFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { - *x = PatternFlowGtpv2TeidFlagCounter{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[607] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68741,13 +68888,13 @@ func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { } } -func (x *PatternFlowGtpv2TeidFlagCounter) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[607] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68759,26 +68906,26 @@ func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{607} } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68788,7 +68935,7 @@ func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2TeidFlagMetricTag struct { +type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68802,12 +68949,12 @@ type PatternFlowGtpv2TeidFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { - *x = PatternFlowGtpv2TeidFlagMetricTag{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[608] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68815,13 +68962,13 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[608] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68833,43 +68980,42 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{608} } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If teid_flag is set to 1 then the TEID field will be present between the message -// length and the sequence number. All messages except Echo and Echo reply require TEID -// to be present -type PatternFlowGtpv2TeidFlag struct { +// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. +// Must be interpreted only if the e_flag bit is on. +type PatternFlowGtpv1NextExtensionHeaderType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68877,17 +69023,17 @@ type PatternFlowGtpv2TeidFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2TeidFlag) Reset() { - *x = PatternFlowGtpv2TeidFlag{} +func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[609] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68895,13 +69041,13 @@ func (x *PatternFlowGtpv2TeidFlag) Reset() { } } -func (x *PatternFlowGtpv2TeidFlag) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[609] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68913,47 +69059,47 @@ func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{609} } -func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2TeidFlag_Choice_unspecified + return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified } -func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { if x != nil { return x.MetricTags } @@ -68961,7 +69107,7 @@ func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMe } // integer counter pattern -type PatternFlowGtpv2Spare1Counter struct { +type PatternFlowGtpExtensionExtensionLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68977,8 +69123,8 @@ type PatternFlowGtpv2Spare1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare1Counter) Reset() { - *x = PatternFlowGtpv2Spare1Counter{} +func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[610] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68986,13 +69132,13 @@ func (x *PatternFlowGtpv2Spare1Counter) Reset() { } } -func (x *PatternFlowGtpv2Spare1Counter) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[610] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69004,26 +69150,26 @@ func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{610} } -func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69033,7 +69179,7 @@ func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2Spare1MetricTag struct { +type PatternFlowGtpExtensionExtensionLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69047,12 +69193,12 @@ type PatternFlowGtpv2Spare1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { - *x = PatternFlowGtpv2Spare1MetricTag{} +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[611] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69060,13 +69206,13 @@ func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { } } -func (x *PatternFlowGtpv2Spare1MetricTag) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[611] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69078,41 +69224,43 @@ func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{611} } -func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 3-bit reserved field (must be 0). -type PatternFlowGtpv2Spare1 struct { +// This field states the length of this extension header, including the length, the +// contents, and the next extension header field, in 4-octet units, so the length of +// the extension must always be a multiple of 4. +type PatternFlowGtpExtensionExtensionLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -69120,17 +69268,17 @@ type PatternFlowGtpv2Spare1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare1) Reset() { - *x = PatternFlowGtpv2Spare1{} +func (x *PatternFlowGtpExtensionExtensionLength) Reset() { + *x = PatternFlowGtpExtensionExtensionLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[612] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69138,13 +69286,13 @@ func (x *PatternFlowGtpv2Spare1) Reset() { } } -func (x *PatternFlowGtpv2Spare1) String() string { +func (x *PatternFlowGtpExtensionExtensionLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[612] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69156,47 +69304,47 @@ func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{612} } -func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { +func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare1_Choice_unspecified + return PatternFlowGtpExtensionExtensionLength_Choice_unspecified } -func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { +func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { +func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { if x != nil { return x.MetricTags } @@ -69204,24 +69352,24 @@ func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1Metric } // integer counter pattern -type PatternFlowGtpv2MessageTypeCounter struct { +type PatternFlowGtpExtensionContentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Start *uint64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + Step *uint64 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { - *x = PatternFlowGtpv2MessageTypeCounter{} +func (x *PatternFlowGtpExtensionContentsCounter) Reset() { + *x = PatternFlowGtpExtensionContentsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[613] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69229,13 +69377,13 @@ func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { } } -func (x *PatternFlowGtpv2MessageTypeCounter) String() string { +func (x *PatternFlowGtpExtensionContentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[613] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69247,26 +69395,26 @@ func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{613} } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { if x != nil && x.Count != nil { return *x.Count } @@ -69276,7 +69424,7 @@ func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2MessageTypeMetricTag struct { +type PatternFlowGtpExtensionContentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69287,15 +69435,15 @@ type PatternFlowGtpv2MessageTypeMetricTag struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 48 + Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv2MessageTypeMetricTag{} +func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { + *x = PatternFlowGtpExtensionContentsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[614] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69303,13 +69451,13 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[614] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69321,60 +69469,59 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{614} } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// An 8-bit field that indicates the type of GTP message. Different types of messages -// are defined in 3GPP TS 29.060 section 7.1 -type PatternFlowGtpv2MessageType struct { +// The extension header contents +type PatternFlowGtpExtensionContents struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageType) Reset() { - *x = PatternFlowGtpv2MessageType{} +func (x *PatternFlowGtpExtensionContents) Reset() { + *x = PatternFlowGtpExtensionContents{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[615] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69382,13 +69529,13 @@ func (x *PatternFlowGtpv2MessageType) Reset() { } } -func (x *PatternFlowGtpv2MessageType) String() string { +func (x *PatternFlowGtpExtensionContents) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[615] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69400,47 +69547,47 @@ func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{615} } -func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { +func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageType_Choice_unspecified + return PatternFlowGtpExtensionContents_Choice_unspecified } -func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { +func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { +func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { if x != nil { return x.MetricTags } @@ -69448,7 +69595,7 @@ func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2Message } // integer counter pattern -type PatternFlowGtpv2MessageLengthCounter struct { +type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69464,8 +69611,8 @@ type PatternFlowGtpv2MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { - *x = PatternFlowGtpv2MessageLengthCounter{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[616] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69473,13 +69620,13 @@ func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { } } -func (x *PatternFlowGtpv2MessageLengthCounter) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[616] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69491,26 +69638,26 @@ func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{616} } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69520,7 +69667,7 @@ func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2MessageLengthMetricTag struct { +type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69534,12 +69681,12 @@ type PatternFlowGtpv2MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv2MessageLengthMetricTag{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[617] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69547,13 +69694,13 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[617] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69565,42 +69712,42 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{617} } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory -// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. -type PatternFlowGtpv2MessageLength struct { +// It states the type of the next extension, or 0 if no next extension exists. This +// permits chaining several next extension headers. +type PatternFlowGtpExtensionNextExtensionHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -69608,17 +69755,17 @@ type PatternFlowGtpv2MessageLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageLength) Reset() { - *x = PatternFlowGtpv2MessageLength{} +func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[618] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69626,13 +69773,13 @@ func (x *PatternFlowGtpv2MessageLength) Reset() { } } -func (x *PatternFlowGtpv2MessageLength) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[618] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69644,47 +69791,47 @@ func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{618} } -func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageLength_Choice_unspecified + return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified } -func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { if x != nil { return x.MetricTags } @@ -69692,13 +69839,13 @@ func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2Messa } // integer counter pattern -type PatternFlowGtpv2TeidCounter struct { +type PatternFlowGtpv2VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -69708,8 +69855,8 @@ type PatternFlowGtpv2TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidCounter) Reset() { - *x = PatternFlowGtpv2TeidCounter{} +func (x *PatternFlowGtpv2VersionCounter) Reset() { + *x = PatternFlowGtpv2VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[619] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69717,13 +69864,13 @@ func (x *PatternFlowGtpv2TeidCounter) Reset() { } } -func (x *PatternFlowGtpv2TeidCounter) String() string { +func (x *PatternFlowGtpv2VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} +func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[619] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69735,26 +69882,26 @@ func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{619} } -func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69764,7 +69911,7 @@ func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2TeidMetricTag struct { +type PatternFlowGtpv2VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69778,12 +69925,12 @@ type PatternFlowGtpv2TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidMetricTag) Reset() { - *x = PatternFlowGtpv2TeidMetricTag{} +func (x *PatternFlowGtpv2VersionMetricTag) Reset() { + *x = PatternFlowGtpv2VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[620] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69791,13 +69938,13 @@ func (x *PatternFlowGtpv2TeidMetricTag) Reset() { } } -func (x *PatternFlowGtpv2TeidMetricTag) String() string { +func (x *PatternFlowGtpv2VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[620] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69809,60 +69956,59 @@ func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{620} } -func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { +func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different -// connections in the same GTP tunnel. Is present only if the teid_flag is set. -type PatternFlowGtpv2Teid struct { +// Version number +type PatternFlowGtpv2Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Teid) Reset() { - *x = PatternFlowGtpv2Teid{} +func (x *PatternFlowGtpv2Version) Reset() { + *x = PatternFlowGtpv2Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[621] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69870,13 +70016,13 @@ func (x *PatternFlowGtpv2Teid) Reset() { } } -func (x *PatternFlowGtpv2Teid) String() string { +func (x *PatternFlowGtpv2Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid) ProtoMessage() {} +func (*PatternFlowGtpv2Version) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[621] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69888,47 +70034,47 @@ func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{621} } -func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { +func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Teid_Choice_unspecified + return PatternFlowGtpv2Version_Choice_unspecified } -func (x *PatternFlowGtpv2Teid) GetValue() uint32 { +func (x *PatternFlowGtpv2Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { +func (x *PatternFlowGtpv2Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { +func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { if x != nil { return x.MetricTags } @@ -69936,7 +70082,7 @@ func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag } // integer counter pattern -type PatternFlowGtpv2SequenceNumberCounter struct { +type PatternFlowGtpv2PiggybackingFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69952,8 +70098,8 @@ type PatternFlowGtpv2SequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { - *x = PatternFlowGtpv2SequenceNumberCounter{} +func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[622] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69961,13 +70107,13 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[622] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69979,26 +70125,26 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{622} } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70008,7 +70154,7 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2SequenceNumberMetricTag struct { +type PatternFlowGtpv2PiggybackingFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70022,12 +70168,12 @@ type PatternFlowGtpv2SequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv2SequenceNumberMetricTag{} +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[623] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70035,13 +70181,13 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[623] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70053,41 +70199,42 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{623} } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The sequence number -type PatternFlowGtpv2SequenceNumber struct { +// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall +// be present at the end of the current message +type PatternFlowGtpv2PiggybackingFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -70095,17 +70242,17 @@ type PatternFlowGtpv2SequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumber) Reset() { - *x = PatternFlowGtpv2SequenceNumber{} +func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[624] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70113,13 +70260,13 @@ func (x *PatternFlowGtpv2SequenceNumber) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumber) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[624] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70131,47 +70278,47 @@ func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{624} } -func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2SequenceNumber_Choice_unspecified + return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified } -func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { +func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { if x != nil { return x.MetricTags } @@ -70179,7 +70326,7 @@ func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2Sequ } // integer counter pattern -type PatternFlowGtpv2Spare2Counter struct { +type PatternFlowGtpv2TeidFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70195,8 +70342,8 @@ type PatternFlowGtpv2Spare2Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare2Counter) Reset() { - *x = PatternFlowGtpv2Spare2Counter{} +func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { + *x = PatternFlowGtpv2TeidFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[625] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70204,13 +70351,13 @@ func (x *PatternFlowGtpv2Spare2Counter) Reset() { } } -func (x *PatternFlowGtpv2Spare2Counter) String() string { +func (x *PatternFlowGtpv2TeidFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[625] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70222,26 +70369,26 @@ func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{625} } -func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70251,7 +70398,7 @@ func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2Spare2MetricTag struct { +type PatternFlowGtpv2TeidFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70265,12 +70412,12 @@ type PatternFlowGtpv2Spare2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { - *x = PatternFlowGtpv2Spare2MetricTag{} +func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { + *x = PatternFlowGtpv2TeidFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[626] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70278,13 +70425,13 @@ func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { } } -func (x *PatternFlowGtpv2Spare2MetricTag) String() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[626] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70296,41 +70443,43 @@ func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{626} } -func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv2Spare2 struct { +// If teid_flag is set to 1 then the TEID field will be present between the message +// length and the sequence number. All messages except Echo and Echo reply require TEID +// to be present +type PatternFlowGtpv2TeidFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -70338,17 +70487,17 @@ type PatternFlowGtpv2Spare2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare2) Reset() { - *x = PatternFlowGtpv2Spare2{} +func (x *PatternFlowGtpv2TeidFlag) Reset() { + *x = PatternFlowGtpv2TeidFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[627] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70356,13 +70505,13 @@ func (x *PatternFlowGtpv2Spare2) Reset() { } } -func (x *PatternFlowGtpv2Spare2) String() string { +func (x *PatternFlowGtpv2TeidFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[627] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70374,47 +70523,47 @@ func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{627} } -func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { +func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare2_Choice_unspecified + return PatternFlowGtpv2TeidFlag_Choice_unspecified } -func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { +func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { if x != nil { return x.MetricTags } @@ -70422,13 +70571,13 @@ func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2Metric } // integer counter pattern -type PatternFlowArpHardwareTypeCounter struct { +type PatternFlowGtpv2Spare1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70438,8 +70587,8 @@ type PatternFlowArpHardwareTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareTypeCounter) Reset() { - *x = PatternFlowArpHardwareTypeCounter{} +func (x *PatternFlowGtpv2Spare1Counter) Reset() { + *x = PatternFlowGtpv2Spare1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[628] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70447,13 +70596,13 @@ func (x *PatternFlowArpHardwareTypeCounter) Reset() { } } -func (x *PatternFlowArpHardwareTypeCounter) String() string { +func (x *PatternFlowGtpv2Spare1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[628] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70465,26 +70614,26 @@ func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{628} } -func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70494,7 +70643,7 @@ func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpHardwareTypeMetricTag struct { +type PatternFlowGtpv2Spare1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70508,12 +70657,12 @@ type PatternFlowArpHardwareTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { - *x = PatternFlowArpHardwareTypeMetricTag{} +func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { + *x = PatternFlowGtpv2Spare1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[629] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70521,13 +70670,13 @@ func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { } } -func (x *PatternFlowArpHardwareTypeMetricTag) String() string { +func (x *PatternFlowGtpv2Spare1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[629] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70539,59 +70688,59 @@ func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{629} } -func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Network link protocol type -type PatternFlowArpHardwareType struct { +// A 3-bit reserved field (must be 0). +type PatternFlowGtpv2Spare1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareType) Reset() { - *x = PatternFlowArpHardwareType{} +func (x *PatternFlowGtpv2Spare1) Reset() { + *x = PatternFlowGtpv2Spare1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[630] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70599,13 +70748,13 @@ func (x *PatternFlowArpHardwareType) Reset() { } } -func (x *PatternFlowArpHardwareType) String() string { +func (x *PatternFlowGtpv2Spare1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1) ProtoMessage() {} -func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[630] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70617,47 +70766,47 @@ func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{630} } -func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { +func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareType_Choice_unspecified + return PatternFlowGtpv2Spare1_Choice_unspecified } -func (x *PatternFlowArpHardwareType) GetValue() uint32 { +func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareType) GetValues() []uint32 { +func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { +func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { if x != nil { return x.MetricTags } @@ -70665,13 +70814,13 @@ func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTy } // integer counter pattern -type PatternFlowArpProtocolTypeCounter struct { +type PatternFlowGtpv2MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70681,8 +70830,8 @@ type PatternFlowArpProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolTypeCounter) Reset() { - *x = PatternFlowArpProtocolTypeCounter{} +func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { + *x = PatternFlowGtpv2MessageTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[631] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70690,13 +70839,13 @@ func (x *PatternFlowArpProtocolTypeCounter) Reset() { } } -func (x *PatternFlowArpProtocolTypeCounter) String() string { +func (x *PatternFlowGtpv2MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[631] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70708,26 +70857,26 @@ func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{631} } -func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70737,7 +70886,7 @@ func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpProtocolTypeMetricTag struct { +type PatternFlowGtpv2MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70751,12 +70900,12 @@ type PatternFlowArpProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { - *x = PatternFlowArpProtocolTypeMetricTag{} +func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv2MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[632] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70764,13 +70913,13 @@ func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { } } -func (x *PatternFlowArpProtocolTypeMetricTag) String() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[632] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70782,59 +70931,60 @@ func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{632} } -func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The internetwork protocol for which the ARP request is intended -type PatternFlowArpProtocolType struct { +// An 8-bit field that indicates the type of GTP message. Different types of messages +// are defined in 3GPP TS 29.060 section 7.1 +type PatternFlowGtpv2MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolType) Reset() { - *x = PatternFlowArpProtocolType{} +func (x *PatternFlowGtpv2MessageType) Reset() { + *x = PatternFlowGtpv2MessageType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[633] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70842,13 +70992,13 @@ func (x *PatternFlowArpProtocolType) Reset() { } } -func (x *PatternFlowArpProtocolType) String() string { +func (x *PatternFlowGtpv2MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType) ProtoMessage() {} -func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[633] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70860,47 +71010,47 @@ func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{633} } -func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { +func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolType_Choice_unspecified + return PatternFlowGtpv2MessageType_Choice_unspecified } -func (x *PatternFlowArpProtocolType) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolType) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { +func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -70908,13 +71058,13 @@ func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTy } // integer counter pattern -type PatternFlowArpHardwareLengthCounter struct { +type PatternFlowGtpv2MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70924,8 +71074,8 @@ type PatternFlowArpHardwareLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareLengthCounter) Reset() { - *x = PatternFlowArpHardwareLengthCounter{} +func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { + *x = PatternFlowGtpv2MessageLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[634] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70933,13 +71083,13 @@ func (x *PatternFlowArpHardwareLengthCounter) Reset() { } } -func (x *PatternFlowArpHardwareLengthCounter) String() string { +func (x *PatternFlowGtpv2MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[634] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70951,26 +71101,26 @@ func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{634} } -func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70980,7 +71130,7 @@ func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpHardwareLengthMetricTag struct { +type PatternFlowGtpv2MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70994,12 +71144,12 @@ type PatternFlowArpHardwareLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { - *x = PatternFlowArpHardwareLengthMetricTag{} +func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv2MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[635] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71007,13 +71157,13 @@ func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { } } -func (x *PatternFlowArpHardwareLengthMetricTag) String() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[635] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71025,59 +71175,60 @@ func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{635} } -func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of a hardware address -type PatternFlowArpHardwareLength struct { +// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory +// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. +type PatternFlowGtpv2MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareLength) Reset() { - *x = PatternFlowArpHardwareLength{} +func (x *PatternFlowGtpv2MessageLength) Reset() { + *x = PatternFlowGtpv2MessageLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[636] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71085,13 +71236,13 @@ func (x *PatternFlowArpHardwareLength) Reset() { } } -func (x *PatternFlowArpHardwareLength) String() string { +func (x *PatternFlowGtpv2MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[636] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71103,47 +71254,47 @@ func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{636} } -func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { +func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareLength_Choice_unspecified + return PatternFlowGtpv2MessageLength_Choice_unspecified } -func (x *PatternFlowArpHardwareLength) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { +func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -71151,13 +71302,13 @@ func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardware } // integer counter pattern -type PatternFlowArpProtocolLengthCounter struct { +type PatternFlowGtpv2TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 4 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -71167,8 +71318,8 @@ type PatternFlowArpProtocolLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolLengthCounter) Reset() { - *x = PatternFlowArpProtocolLengthCounter{} +func (x *PatternFlowGtpv2TeidCounter) Reset() { + *x = PatternFlowGtpv2TeidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[637] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71176,13 +71327,13 @@ func (x *PatternFlowArpProtocolLengthCounter) Reset() { } } -func (x *PatternFlowArpProtocolLengthCounter) String() string { +func (x *PatternFlowGtpv2TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[637] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71194,26 +71345,26 @@ func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{637} } -func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71223,7 +71374,7 @@ func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpProtocolLengthMetricTag struct { +type PatternFlowGtpv2TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71237,12 +71388,12 @@ type PatternFlowArpProtocolLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { - *x = PatternFlowArpProtocolLengthMetricTag{} +func (x *PatternFlowGtpv2TeidMetricTag) Reset() { + *x = PatternFlowGtpv2TeidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[638] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71250,13 +71401,13 @@ func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { } } -func (x *PatternFlowArpProtocolLengthMetricTag) String() string { +func (x *PatternFlowGtpv2TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[638] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71268,59 +71419,60 @@ func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{638} } -func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of internetwork addresses -type PatternFlowArpProtocolLength struct { +// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different +// connections in the same GTP tunnel. Is present only if the teid_flag is set. +type PatternFlowGtpv2Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 4 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [4] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolLength) Reset() { - *x = PatternFlowArpProtocolLength{} +func (x *PatternFlowGtpv2Teid) Reset() { + *x = PatternFlowGtpv2Teid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[639] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71328,13 +71480,13 @@ func (x *PatternFlowArpProtocolLength) Reset() { } } -func (x *PatternFlowArpProtocolLength) String() string { +func (x *PatternFlowGtpv2Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength) ProtoMessage() {} +func (*PatternFlowGtpv2Teid) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[639] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71346,47 +71498,47 @@ func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{639} } -func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { +func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolLength_Choice_unspecified + return PatternFlowGtpv2Teid_Choice_unspecified } -func (x *PatternFlowArpProtocolLength) GetValue() uint32 { +func (x *PatternFlowGtpv2Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { +func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { +func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { if x != nil { return x.MetricTags } @@ -71394,13 +71546,13 @@ func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocol } // integer counter pattern -type PatternFlowArpOperationCounter struct { +type PatternFlowGtpv2SequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -71410,8 +71562,8 @@ type PatternFlowArpOperationCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpOperationCounter) Reset() { - *x = PatternFlowArpOperationCounter{} +func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { + *x = PatternFlowGtpv2SequenceNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[640] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71419,13 +71571,13 @@ func (x *PatternFlowArpOperationCounter) Reset() { } } -func (x *PatternFlowArpOperationCounter) String() string { +func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationCounter) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[640] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71437,26 +71589,26 @@ func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{640} } -func (x *PatternFlowArpOperationCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpOperationCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpOperationCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71466,7 +71618,7 @@ func (x *PatternFlowArpOperationCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpOperationMetricTag struct { +type PatternFlowGtpv2SequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71480,12 +71632,12 @@ type PatternFlowArpOperationMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpOperationMetricTag) Reset() { - *x = PatternFlowArpOperationMetricTag{} +func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv2SequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[641] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71493,13 +71645,13 @@ func (x *PatternFlowArpOperationMetricTag) Reset() { } } -func (x *PatternFlowArpOperationMetricTag) String() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[641] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71511,59 +71663,59 @@ func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{641} } -func (x *PatternFlowArpOperationMetricTag) GetName() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The operation that the sender is performing -type PatternFlowArpOperation struct { +// The sequence number +type PatternFlowGtpv2SequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpOperation) Reset() { - *x = PatternFlowArpOperation{} +func (x *PatternFlowGtpv2SequenceNumber) Reset() { + *x = PatternFlowGtpv2SequenceNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[642] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71571,13 +71723,13 @@ func (x *PatternFlowArpOperation) Reset() { } } -func (x *PatternFlowArpOperation) String() string { +func (x *PatternFlowGtpv2SequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} -func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[642] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71589,72 +71741,72 @@ func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{642} } -func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { +func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpOperation_Choice_unspecified + return PatternFlowGtpv2SequenceNumber_Choice_unspecified } -func (x *PatternFlowArpOperation) GetValue() uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpOperation) GetValues() []uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { +func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpSenderHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowGtpv2Spare2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { - *x = PatternFlowArpSenderHardwareAddrCounter{} +func (x *PatternFlowGtpv2Spare2Counter) Reset() { + *x = PatternFlowGtpv2Spare2Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[643] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71662,13 +71814,13 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { +func (x *PatternFlowGtpv2Spare2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[643] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71680,26 +71832,26 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{643} } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { +func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { +func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71709,7 +71861,7 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpSenderHardwareAddrMetricTag struct { +type PatternFlowGtpv2Spare2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71723,12 +71875,12 @@ type PatternFlowArpSenderHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpSenderHardwareAddrMetricTag{} +func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { + *x = PatternFlowGtpv2Spare2MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[644] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71736,13 +71888,13 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { +func (x *PatternFlowGtpv2Spare2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[644] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71754,59 +71906,59 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{644} } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the sender -type PatternFlowArpSenderHardwareAddr struct { +// Reserved field +type PatternFlowGtpv2Spare2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddr) Reset() { - *x = PatternFlowArpSenderHardwareAddr{} +func (x *PatternFlowGtpv2Spare2) Reset() { + *x = PatternFlowGtpv2Spare2{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[645] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71814,13 +71966,13 @@ func (x *PatternFlowArpSenderHardwareAddr) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddr) String() string { +func (x *PatternFlowGtpv2Spare2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[645] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71832,72 +71984,72 @@ func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{645} } -func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { +func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderHardwareAddr_Choice_unspecified + return PatternFlowGtpv2Spare2_Choice_unspecified } -func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { +func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { +func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { +func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpSenderProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowArpHardwareTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 1 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { - *x = PatternFlowArpSenderProtocolAddrCounter{} +func (x *PatternFlowArpHardwareTypeCounter) Reset() { + *x = PatternFlowArpHardwareTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[646] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71905,13 +72057,13 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { +func (x *PatternFlowArpHardwareTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[646] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71923,26 +72075,26 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{646} } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { +func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { +func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71952,7 +72104,7 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpSenderProtocolAddrMetricTag struct { +type PatternFlowArpHardwareTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71966,12 +72118,12 @@ type PatternFlowArpSenderProtocolAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpSenderProtocolAddrMetricTag{} +func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { + *x = PatternFlowArpHardwareTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[647] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71979,13 +72131,13 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { +func (x *PatternFlowArpHardwareTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[647] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71997,59 +72149,59 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{647} } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the sender -type PatternFlowArpSenderProtocolAddr struct { +// Network link protocol type +type PatternFlowArpHardwareType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 1 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [1] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddr) Reset() { - *x = PatternFlowArpSenderProtocolAddr{} +func (x *PatternFlowArpHardwareType) Reset() { + *x = PatternFlowArpHardwareType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[648] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72057,13 +72209,13 @@ func (x *PatternFlowArpSenderProtocolAddr) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddr) String() string { +func (x *PatternFlowArpHardwareType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} +func (*PatternFlowArpHardwareType) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[648] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72075,72 +72227,72 @@ func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{648} } -func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { +func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderProtocolAddr_Choice_unspecified + return PatternFlowArpHardwareType_Choice_unspecified } -func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { +func (x *PatternFlowArpHardwareType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { +func (x *PatternFlowArpHardwareType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { +func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpTargetHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowArpProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 2048 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { - *x = PatternFlowArpTargetHardwareAddrCounter{} +func (x *PatternFlowArpProtocolTypeCounter) Reset() { + *x = PatternFlowArpProtocolTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[649] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72148,13 +72300,13 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { +func (x *PatternFlowArpProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[649] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72166,26 +72318,26 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{649} } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { +func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { +func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72195,7 +72347,7 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpTargetHardwareAddrMetricTag struct { +type PatternFlowArpProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72209,12 +72361,12 @@ type PatternFlowArpTargetHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpTargetHardwareAddrMetricTag{} +func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { + *x = PatternFlowArpProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[650] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72222,13 +72374,13 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { +func (x *PatternFlowArpProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[650] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72240,59 +72392,59 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{650} } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the target -type PatternFlowArpTargetHardwareAddr struct { +// The internetwork protocol for which the ARP request is intended +type PatternFlowArpProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 2048 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [2048] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddr) Reset() { - *x = PatternFlowArpTargetHardwareAddr{} +func (x *PatternFlowArpProtocolType) Reset() { + *x = PatternFlowArpProtocolType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[651] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72300,13 +72452,13 @@ func (x *PatternFlowArpTargetHardwareAddr) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddr) String() string { +func (x *PatternFlowArpProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} +func (*PatternFlowArpProtocolType) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[651] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72318,72 +72470,72 @@ func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{651} } -func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { +func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetHardwareAddr_Choice_unspecified + return PatternFlowArpProtocolType_Choice_unspecified } -func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { +func (x *PatternFlowArpProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { +func (x *PatternFlowArpProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { +func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpTargetProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowArpHardwareLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 6 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { - *x = PatternFlowArpTargetProtocolAddrCounter{} +func (x *PatternFlowArpHardwareLengthCounter) Reset() { + *x = PatternFlowArpHardwareLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[652] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72391,13 +72543,13 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { +func (x *PatternFlowArpHardwareLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[652] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72409,26 +72561,26 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{652} } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { +func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { +func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72438,7 +72590,7 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpTargetProtocolAddrMetricTag struct { +type PatternFlowArpHardwareLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72452,12 +72604,12 @@ type PatternFlowArpTargetProtocolAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpTargetProtocolAddrMetricTag{} +func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { + *x = PatternFlowArpHardwareLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[653] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72465,13 +72617,13 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { +func (x *PatternFlowArpHardwareLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[653] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72483,59 +72635,59 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{653} } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the target -type PatternFlowArpTargetProtocolAddr struct { +// Length (in octets) of a hardware address +type PatternFlowArpHardwareLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 6 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [6] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddr) Reset() { - *x = PatternFlowArpTargetProtocolAddr{} +func (x *PatternFlowArpHardwareLength) Reset() { + *x = PatternFlowArpHardwareLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[654] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72543,13 +72695,13 @@ func (x *PatternFlowArpTargetProtocolAddr) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddr) String() string { +func (x *PatternFlowArpHardwareLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} +func (*PatternFlowArpHardwareLength) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[654] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72561,47 +72713,47 @@ func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{654} } -func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { +func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetProtocolAddr_Choice_unspecified + return PatternFlowArpHardwareLength_Choice_unspecified } -func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { +func (x *PatternFlowArpHardwareLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { +func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { +func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { if x != nil { return x.MetricTags } @@ -72609,13 +72761,13 @@ func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTarg } // integer counter pattern -type PatternFlowIcmpEchoTypeCounter struct { +type PatternFlowArpProtocolLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 8 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72625,8 +72777,8 @@ type PatternFlowIcmpEchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoTypeCounter) Reset() { - *x = PatternFlowIcmpEchoTypeCounter{} +func (x *PatternFlowArpProtocolLengthCounter) Reset() { + *x = PatternFlowArpProtocolLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[655] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72634,13 +72786,13 @@ func (x *PatternFlowIcmpEchoTypeCounter) Reset() { } } -func (x *PatternFlowIcmpEchoTypeCounter) String() string { +func (x *PatternFlowArpProtocolLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[655] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72652,26 +72804,26 @@ func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{655} } -func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72681,7 +72833,7 @@ func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoTypeMetricTag struct { +type PatternFlowArpProtocolLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72699,8 +72851,8 @@ type PatternFlowIcmpEchoTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpEchoTypeMetricTag{} +func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { + *x = PatternFlowArpProtocolLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[656] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72708,13 +72860,13 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { } } -func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { +func (x *PatternFlowArpProtocolLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[656] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72726,59 +72878,59 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{656} } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { +func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of ICMP echo packet -type PatternFlowIcmpEchoType struct { +// Length (in octets) of internetwork addresses +type PatternFlowArpProtocolLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 8 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [8] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoType) Reset() { - *x = PatternFlowIcmpEchoType{} +func (x *PatternFlowArpProtocolLength) Reset() { + *x = PatternFlowArpProtocolLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[657] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72786,13 +72938,13 @@ func (x *PatternFlowIcmpEchoType) Reset() { } } -func (x *PatternFlowIcmpEchoType) String() string { +func (x *PatternFlowArpProtocolLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType) ProtoMessage() {} +func (*PatternFlowArpProtocolLength) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[657] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72804,47 +72956,47 @@ func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{657} } -func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { +func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoType_Choice_unspecified + return PatternFlowArpProtocolLength_Choice_unspecified } -func (x *PatternFlowIcmpEchoType) GetValue() uint32 { +func (x *PatternFlowArpProtocolLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { +func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { +func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { if x != nil { return x.MetricTags } @@ -72852,13 +73004,13 @@ func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetr } // integer counter pattern -type PatternFlowIcmpEchoCodeCounter struct { +type PatternFlowArpOperationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72868,8 +73020,8 @@ type PatternFlowIcmpEchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoCodeCounter) Reset() { - *x = PatternFlowIcmpEchoCodeCounter{} +func (x *PatternFlowArpOperationCounter) Reset() { + *x = PatternFlowArpOperationCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[658] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72877,13 +73029,13 @@ func (x *PatternFlowIcmpEchoCodeCounter) Reset() { } } -func (x *PatternFlowIcmpEchoCodeCounter) String() string { +func (x *PatternFlowArpOperationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} +func (*PatternFlowArpOperationCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[658] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72895,26 +73047,26 @@ func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{658} } -func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowArpOperationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowArpOperationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowArpOperationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72924,7 +73076,7 @@ func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoCodeMetricTag struct { +type PatternFlowArpOperationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72938,12 +73090,12 @@ type PatternFlowIcmpEchoCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpEchoCodeMetricTag{} +func (x *PatternFlowArpOperationMetricTag) Reset() { + *x = PatternFlowArpOperationMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[659] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72951,13 +73103,13 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { } } -func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { +func (x *PatternFlowArpOperationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[659] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72969,59 +73121,59 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{659} } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { +func (x *PatternFlowArpOperationMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The ICMP subtype. The default code for ICMP echo request and reply is 0. -type PatternFlowIcmpEchoCode struct { +// The operation that the sender is performing +type PatternFlowArpOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoCode) Reset() { - *x = PatternFlowIcmpEchoCode{} +func (x *PatternFlowArpOperation) Reset() { + *x = PatternFlowArpOperation{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[660] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -73029,13 +73181,13 @@ func (x *PatternFlowIcmpEchoCode) Reset() { } } -func (x *PatternFlowIcmpEchoCode) String() string { +func (x *PatternFlowArpOperation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode) ProtoMessage() {} +func (*PatternFlowArpOperation) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[660] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -73047,156 +73199,87 @@ func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{660} } -func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { +func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoCode_Choice_unspecified + return PatternFlowArpOperation_Choice_unspecified } -func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { +func (x *PatternFlowArpOperation) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { +func (x *PatternFlowArpOperation) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { +func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpEchoChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpEchoChecksum) Reset() { - *x = PatternFlowIcmpEchoChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[661] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpEchoChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[661] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpEchoChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661} -} - -func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpEchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpEchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// integer counter pattern -type PatternFlowIcmpEchoIdentifierCounter struct { +// mac counter pattern +type PatternFlowArpSenderHardwareAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpEchoIdentifierCounter{} +func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { + *x = PatternFlowArpSenderHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[662] + mi := &file_otg_proto_msgTypes[661] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { +func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[662] +func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[661] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73207,26 +73290,26 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{662} +// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{661} } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73236,7 +73319,7 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoIdentifierMetricTag struct { +type PatternFlowArpSenderHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73250,27 +73333,27 @@ type PatternFlowIcmpEchoIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpEchoIdentifierMetricTag{} +func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpSenderHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[663] + mi := &file_otg_proto_msgTypes[662] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[663] +func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[662] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73281,74 +73364,74 @@ func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663} +// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{662} } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpEchoIdentifier struct { +// Media address of the sender +type PatternFlowArpSenderHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifier) Reset() { - *x = PatternFlowIcmpEchoIdentifier{} +func (x *PatternFlowArpSenderHardwareAddr) Reset() { + *x = PatternFlowArpSenderHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[664] + mi := &file_otg_proto_msgTypes[663] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier) String() string { +func (x *PatternFlowArpSenderHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[664] +func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[663] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73359,87 +73442,87 @@ func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664} +// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663} } -func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { +func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoIdentifier_Choice_unspecified + return PatternFlowArpSenderHardwareAddr_Choice_unspecified } -func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { +func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIcmpEchoSequenceNumberCounter struct { +// ipv4 counter pattern +type PatternFlowArpSenderProtocolAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberCounter{} +func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { + *x = PatternFlowArpSenderProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[665] + mi := &file_otg_proto_msgTypes[664] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { +func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[665] +func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[664] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73450,26 +73533,26 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{665} +// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{664} } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73479,7 +73562,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoSequenceNumberMetricTag struct { +type PatternFlowArpSenderProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73493,27 +73576,27 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} +func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpSenderProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[666] + mi := &file_otg_proto_msgTypes[665] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[666] +func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[665] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73524,74 +73607,74 @@ func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666} +// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{665} } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpEchoSequenceNumber struct { +// Internetwork address of the sender +type PatternFlowArpSenderProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber{} +func (x *PatternFlowArpSenderProtocolAddr) Reset() { + *x = PatternFlowArpSenderProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[667] + mi := &file_otg_proto_msgTypes[666] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber) String() string { +func (x *PatternFlowArpSenderProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[667] +func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[666] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73602,156 +73685,87 @@ func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667} +// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666} } -func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { +func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified + return PatternFlowArpSenderProtocolAddr_Choice_unspecified } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { +func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpCommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpCommonChecksum) Reset() { - *x = PatternFlowIcmpCommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[668] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpCommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[668] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668} -} - -func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpCommonChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpCommonChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// integer counter pattern -type PatternFlowIcmpNextFieldsIdentifierCounter struct { +// mac counter pattern +type PatternFlowArpTargetHardwareAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierCounter{} +func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { + *x = PatternFlowArpTargetHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[669] + mi := &file_otg_proto_msgTypes[667] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { +func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[669] +func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[667] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73762,26 +73776,26 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669} +// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{667} } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73791,7 +73805,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { +type PatternFlowArpTargetHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73805,27 +73819,27 @@ type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} +func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpTargetHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[670] + mi := &file_otg_proto_msgTypes[668] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[670] +func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[668] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73836,74 +73850,74 @@ func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{670} +// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{668} } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpNextFieldsIdentifier struct { +// Media address of the target +type PatternFlowArpTargetHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier{} +func (x *PatternFlowArpTargetHardwareAddr) Reset() { + *x = PatternFlowArpTargetHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[671] + mi := &file_otg_proto_msgTypes[669] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { +func (x *PatternFlowArpTargetHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[671] +func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[669] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73914,87 +73928,87 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671} +// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669} } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { +func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified + return PatternFlowArpTargetHardwareAddr_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { +func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { +// ipv4 counter pattern +type PatternFlowArpTargetProtocolAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} +func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { + *x = PatternFlowArpTargetProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[672] + mi := &file_otg_proto_msgTypes[670] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { +func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[672] +func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[670] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74005,26 +74019,26 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672} +// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{670} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74034,7 +74048,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { +type PatternFlowArpTargetProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74048,27 +74062,27 @@ type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} +func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpTargetProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[673] + mi := &file_otg_proto_msgTypes[671] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[673] +func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[671] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74079,74 +74093,74 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{673} +// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{671} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpNextFieldsSequenceNumber struct { +// Internetwork address of the target +type PatternFlowArpTargetProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber{} +func (x *PatternFlowArpTargetProtocolAddr) Reset() { + *x = PatternFlowArpTargetProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[674] + mi := &file_otg_proto_msgTypes[672] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { +func (x *PatternFlowArpTargetProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[674] +func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[672] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74157,47 +74171,47 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674} +// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672} } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { +func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified + return PatternFlowArpTargetProtocolAddr_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { +func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { if x != nil { return x.MetricTags } @@ -74205,13 +74219,13 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlow } // integer counter pattern -type PatternFlowIcmpv6EchoTypeCounter struct { +type PatternFlowIcmpEchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 128 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -74221,23 +74235,23 @@ type PatternFlowIcmpv6EchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { - *x = PatternFlowIcmpv6EchoTypeCounter{} +func (x *PatternFlowIcmpEchoTypeCounter) Reset() { + *x = PatternFlowIcmpEchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[675] + mi := &file_otg_proto_msgTypes[673] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { +func (x *PatternFlowIcmpEchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[675] +func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[673] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74248,26 +74262,26 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675} +// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{673} } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74277,7 +74291,7 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoTypeMetricTag struct { +type PatternFlowIcmpEchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74295,23 +74309,23 @@ type PatternFlowIcmpv6EchoTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoTypeMetricTag{} +func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpEchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[676] + mi := &file_otg_proto_msgTypes[674] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[676] +func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[674] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74322,74 +74336,74 @@ func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{676} +// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{674} } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo type -type PatternFlowIcmpv6EchoType struct { +// The type of ICMP echo packet +type PatternFlowIcmpEchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 128 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [128] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoType) Reset() { - *x = PatternFlowIcmpv6EchoType{} +func (x *PatternFlowIcmpEchoType) Reset() { + *x = PatternFlowIcmpEchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[677] + mi := &file_otg_proto_msgTypes[675] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType) String() string { +func (x *PatternFlowIcmpEchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} +func (*PatternFlowIcmpEchoType) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[677] +func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[675] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74400,47 +74414,47 @@ func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677} +// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675} } -func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { +func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoType_Choice_unspecified + return PatternFlowIcmpEchoType_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { +func (x *PatternFlowIcmpEchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { +func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { if x != nil { return x.MetricTags } @@ -74448,7 +74462,7 @@ func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoType } // integer counter pattern -type PatternFlowIcmpv6EchoCodeCounter struct { +type PatternFlowIcmpEchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74464,23 +74478,23 @@ type PatternFlowIcmpv6EchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { - *x = PatternFlowIcmpv6EchoCodeCounter{} +func (x *PatternFlowIcmpEchoCodeCounter) Reset() { + *x = PatternFlowIcmpEchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[678] + mi := &file_otg_proto_msgTypes[676] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { +func (x *PatternFlowIcmpEchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[678] +func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[676] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74491,26 +74505,26 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678} +// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{676} } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74520,7 +74534,7 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoCodeMetricTag struct { +type PatternFlowIcmpEchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74538,23 +74552,23 @@ type PatternFlowIcmpv6EchoCodeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoCodeMetricTag{} +func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpEchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[679] + mi := &file_otg_proto_msgTypes[677] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[679] +func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[677] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74565,41 +74579,41 @@ func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{679} +// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{677} } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sub type -type PatternFlowIcmpv6EchoCode struct { +// The ICMP subtype. The default code for ICMP echo request and reply is 0. +type PatternFlowIcmpEchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -74607,32 +74621,32 @@ type PatternFlowIcmpv6EchoCode struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoCode) Reset() { - *x = PatternFlowIcmpv6EchoCode{} +func (x *PatternFlowIcmpEchoCode) Reset() { + *x = PatternFlowIcmpEchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[680] + mi := &file_otg_proto_msgTypes[678] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode) String() string { +func (x *PatternFlowIcmpEchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} +func (*PatternFlowIcmpEchoCode) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[680] +func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[678] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74643,55 +74657,124 @@ func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680} +// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678} } -func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { +func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoCode_Choice_unspecified + return PatternFlowIcmpEchoCode_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { +func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { +func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { if x != nil { return x.MetricTags } return nil } +// ICMP checksum +type PatternFlowIcmpEchoChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIcmpEchoChecksum) Reset() { + *x = PatternFlowIcmpEchoChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[679] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[679] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpEchoChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679} +} + +func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIcmpEchoChecksum_Choice_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIcmpEchoChecksum_Generated_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowIcmpv6EchoIdentifierCounter struct { +type PatternFlowIcmpEchoIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74707,23 +74790,23 @@ type PatternFlowIcmpv6EchoIdentifierCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierCounter{} +func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpEchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[681] + mi := &file_otg_proto_msgTypes[680] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { +func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[681] +func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[680] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74734,26 +74817,26 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681} +// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{680} } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74763,7 +74846,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoIdentifierMetricTag struct { +type PatternFlowIcmpEchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74781,23 +74864,23 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} +func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpEchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[682] + mi := &file_otg_proto_msgTypes[681] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[682] +func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[681] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74808,41 +74891,41 @@ func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{682} +// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{681} } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo identifier -type PatternFlowIcmpv6EchoIdentifier struct { +// ICMP identifier +type PatternFlowIcmpEchoIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -74850,32 +74933,32 @@ type PatternFlowIcmpv6EchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier{} +func (x *PatternFlowIcmpEchoIdentifier) Reset() { + *x = PatternFlowIcmpEchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[683] + mi := &file_otg_proto_msgTypes[682] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier) String() string { +func (x *PatternFlowIcmpEchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[683] +func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[682] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74886,47 +74969,47 @@ func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683} +// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{682} } -func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { +func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified + return PatternFlowIcmpEchoIdentifier_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { +func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -74934,7 +75017,7 @@ func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6Ec } // integer counter pattern -type PatternFlowIcmpv6EchoSequenceNumberCounter struct { +type PatternFlowIcmpEchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74950,23 +75033,23 @@ type PatternFlowIcmpv6EchoSequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} +func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[684] + mi := &file_otg_proto_msgTypes[683] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[684] +func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[683] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74977,26 +75060,26 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{683} } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75006,7 +75089,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { +type PatternFlowIcmpEchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75024,23 +75107,23 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[685] + mi := &file_otg_proto_msgTypes[684] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[685] +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[684] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75051,41 +75134,41 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{685} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{684} } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sequence number -type PatternFlowIcmpv6EchoSequenceNumber struct { +// ICMP sequence number +type PatternFlowIcmpEchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -75093,32 +75176,32 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber{} +func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[686] + mi := &file_otg_proto_msgTypes[685] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { +func (x *PatternFlowIcmpEchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[686] +func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[685] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75129,86 +75212,86 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{685} } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { +func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified + return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { +func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMPv6 checksum -type PatternFlowIcmpv6EchoChecksum struct { +// ICMP checksum +type PatternFlowIcmpCommonChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of checksum // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` // A system generated checksum value // default = Generated.Enum.good - Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` // A custom checksum value Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowIcmpv6EchoChecksum) Reset() { - *x = PatternFlowIcmpv6EchoChecksum{} +func (x *PatternFlowIcmpCommonChecksum) Reset() { + *x = PatternFlowIcmpCommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[687] + mi := &file_otg_proto_msgTypes[686] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum) String() string { +func (x *PatternFlowIcmpCommonChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} +func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[687] +func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[686] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75219,95 +75302,26 @@ func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687} +// Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686} } -func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { +func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpv6EchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ICMPv6 checksum -type PatternFlowIcmpv6CommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpv6CommonChecksum) Reset() { - *x = PatternFlowIcmpv6CommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[688] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpv6CommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[688] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688} -} - -func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpv6CommonChecksum_Choice_unspecified + return PatternFlowIcmpCommonChecksum_Choice_unspecified } -func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { +func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { if x != nil && x.Generated != nil { return *x.Generated } - return PatternFlowIcmpv6CommonChecksum_Generated_unspecified + return PatternFlowIcmpCommonChecksum_Generated_unspecified } -func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { +func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { if x != nil && x.Custom != nil { return *x.Custom } @@ -75315,13 +75329,13 @@ func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { } // integer counter pattern -type PatternFlowPppAddressCounter struct { +type PatternFlowIcmpNextFieldsIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 255 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75331,23 +75345,23 @@ type PatternFlowPppAddressCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppAddressCounter) Reset() { - *x = PatternFlowPppAddressCounter{} +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[689] + mi := &file_otg_proto_msgTypes[687] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressCounter) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[689] +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[687] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75358,26 +75372,26 @@ func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{689} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{687} } -func (x *PatternFlowPppAddressCounter) GetStart() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppAddressCounter) GetStep() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppAddressCounter) GetCount() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75387,7 +75401,7 @@ func (x *PatternFlowPppAddressCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppAddressMetricTag struct { +type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75401,27 +75415,27 @@ type PatternFlowPppAddressMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppAddressMetricTag) Reset() { - *x = PatternFlowPppAddressMetricTag{} +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[690] + mi := &file_otg_proto_msgTypes[688] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressMetricTag) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[690] +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[688] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75432,74 +75446,74 @@ func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{688} } -func (x *PatternFlowPppAddressMetricTag) GetName() string { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP address -type PatternFlowPppAddress struct { +// ICMP identifier +type PatternFlowIcmpNextFieldsIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 255 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [255] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppAddress) Reset() { - *x = PatternFlowPppAddress{} +func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[691] + mi := &file_otg_proto_msgTypes[689] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} -func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[691] +func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[689] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75510,47 +75524,47 @@ func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{689} } -func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppAddress_Choice_unspecified + return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified } -func (x *PatternFlowPppAddress) GetValue() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppAddress) GetValues() []uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -75558,13 +75572,13 @@ func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTa } // integer counter pattern -type PatternFlowPppControlCounter struct { +type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 3 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75574,23 +75588,23 @@ type PatternFlowPppControlCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppControlCounter) Reset() { - *x = PatternFlowPppControlCounter{} +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[692] + mi := &file_otg_proto_msgTypes[690] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlCounter) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[692] +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[690] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75601,26 +75615,26 @@ func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{692} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{690} } -func (x *PatternFlowPppControlCounter) GetStart() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppControlCounter) GetStep() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppControlCounter) GetCount() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75630,7 +75644,7 @@ func (x *PatternFlowPppControlCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppControlMetricTag struct { +type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75644,27 +75658,27 @@ type PatternFlowPppControlMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppControlMetricTag) Reset() { - *x = PatternFlowPppControlMetricTag{} +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[693] + mi := &file_otg_proto_msgTypes[691] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlMetricTag) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[693] +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[691] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75675,74 +75689,74 @@ func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{691} } -func (x *PatternFlowPppControlMetricTag) GetName() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP control -type PatternFlowPppControl struct { +// ICMP sequence number +type PatternFlowIcmpNextFieldsSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 3 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [3] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppControl) Reset() { - *x = PatternFlowPppControl{} +func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[694] + mi := &file_otg_proto_msgTypes[692] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} -func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[694] +func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[692] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75753,47 +75767,47 @@ func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{692} } -func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppControl_Choice_unspecified + return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified } -func (x *PatternFlowPppControl) GetValue() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppControl) GetValues() []uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { if x != nil { return x.MetricTags } @@ -75801,13 +75815,13 @@ func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTa } // integer counter pattern -type PatternFlowPppProtocolTypeCounter struct { +type PatternFlowIcmpv6EchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33 + // default = 128 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75817,23 +75831,23 @@ type PatternFlowPppProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppProtocolTypeCounter) Reset() { - *x = PatternFlowPppProtocolTypeCounter{} +func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { + *x = PatternFlowIcmpv6EchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[695] + mi := &file_otg_proto_msgTypes[693] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeCounter) String() string { +func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[695] +func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[693] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75844,26 +75858,26 @@ func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{695} +// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{693} } -func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75873,7 +75887,7 @@ func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppProtocolTypeMetricTag struct { +type PatternFlowIcmpv6EchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75887,27 +75901,27 @@ type PatternFlowPppProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { - *x = PatternFlowPppProtocolTypeMetricTag{} +func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[696] + mi := &file_otg_proto_msgTypes[694] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[696] +func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[694] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75918,79 +75932,74 @@ func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{696} +// Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{694} } -func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP protocol type -type PatternFlowPppProtocolType struct { +// ICMPv6 echo type +type PatternFlowIcmpv6EchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33 + // default = 128 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33] + // default = [128] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 33 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppProtocolType) Reset() { - *x = PatternFlowPppProtocolType{} +func (x *PatternFlowIcmpv6EchoType) Reset() { + *x = PatternFlowIcmpv6EchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[697] + mi := &file_otg_proto_msgTypes[695] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType) String() string { +func (x *PatternFlowIcmpv6EchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} -func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[697] +func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[695] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76001,54 +76010,47 @@ func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697} +// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{695} } -func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { +func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppProtocolType_Choice_unspecified + return PatternFlowIcmpv6EchoType_Choice_unspecified } -func (x *PatternFlowPppProtocolType) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppProtocolType) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppProtocolType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { +func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { if x != nil { return x.MetricTags } @@ -76056,13 +76058,13 @@ func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTy } // integer counter pattern -type PatternFlowIgmpv1VersionCounter struct { +type PatternFlowIcmpv6EchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -76072,23 +76074,23 @@ type PatternFlowIgmpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1VersionCounter) Reset() { - *x = PatternFlowIgmpv1VersionCounter{} +func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { + *x = PatternFlowIcmpv6EchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[698] + mi := &file_otg_proto_msgTypes[696] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionCounter) String() string { +func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[698] +func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[696] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76099,26 +76101,26 @@ func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{698} +// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{696} } -func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76128,7 +76130,7 @@ func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1VersionMetricTag struct { +type PatternFlowIcmpv6EchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76142,27 +76144,27 @@ type PatternFlowIgmpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { - *x = PatternFlowIgmpv1VersionMetricTag{} +func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[699] + mi := &file_otg_proto_msgTypes[697] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[699] +func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[697] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76173,74 +76175,74 @@ func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{699} +// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{697} } -func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIgmpv1Version struct { +// ICMPv6 echo sub type +type PatternFlowIcmpv6EchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Version) Reset() { - *x = PatternFlowIgmpv1Version{} +func (x *PatternFlowIcmpv6EchoCode) Reset() { + *x = PatternFlowIcmpv6EchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[700] + mi := &file_otg_proto_msgTypes[698] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version) String() string { +func (x *PatternFlowIcmpv6EchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[700] +func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[698] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76251,47 +76253,47 @@ func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700} +// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{698} } -func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { +func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Version_Choice_unspecified + return PatternFlowIcmpv6EchoCode_Choice_unspecified } -func (x *PatternFlowIgmpv1Version) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { +func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { if x != nil { return x.MetricTags } @@ -76299,13 +76301,13 @@ func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMe } // integer counter pattern -type PatternFlowIgmpv1TypeCounter struct { +type PatternFlowIcmpv6EchoIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -76315,23 +76317,23 @@ type PatternFlowIgmpv1TypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1TypeCounter) Reset() { - *x = PatternFlowIgmpv1TypeCounter{} +func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[701] + mi := &file_otg_proto_msgTypes[699] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeCounter) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[701] +func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[699] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76342,26 +76344,26 @@ func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{699} } -func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76371,7 +76373,7 @@ func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1TypeMetricTag struct { +type PatternFlowIcmpv6EchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76385,27 +76387,27 @@ type PatternFlowIgmpv1TypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { - *x = PatternFlowIgmpv1TypeMetricTag{} +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[702] + mi := &file_otg_proto_msgTypes[700] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[702] +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[700] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76416,74 +76418,74 @@ func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{702} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{700} } -func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Type of message -type PatternFlowIgmpv1Type struct { +// ICMPv6 echo identifier +type PatternFlowIcmpv6EchoIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Type) Reset() { - *x = PatternFlowIgmpv1Type{} +func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[703] + mi := &file_otg_proto_msgTypes[701] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type) String() string { +func (x *PatternFlowIcmpv6EchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[703] +func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[701] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76494,47 +76496,47 @@ func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{701} } -func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { +func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Type_Choice_unspecified + return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified } -func (x *PatternFlowIgmpv1Type) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { +func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -76542,7 +76544,7 @@ func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTa } // integer counter pattern -type PatternFlowIgmpv1UnusedCounter struct { +type PatternFlowIcmpv6EchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76558,23 +76560,23 @@ type PatternFlowIgmpv1UnusedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1UnusedCounter) Reset() { - *x = PatternFlowIgmpv1UnusedCounter{} +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[704] + mi := &file_otg_proto_msgTypes[702] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedCounter) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[704] +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[702] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76585,26 +76587,26 @@ func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{702} } -func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76614,7 +76616,7 @@ func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1UnusedMetricTag struct { +type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76628,27 +76630,27 @@ type PatternFlowIgmpv1UnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { - *x = PatternFlowIgmpv1UnusedMetricTag{} +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[705] + mi := &file_otg_proto_msgTypes[703] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[705] +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[703] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76659,41 +76661,41 @@ func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{705} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{703} } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIgmpv1Unused struct { +// ICMPv6 echo sequence number +type PatternFlowIcmpv6EchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -76701,32 +76703,32 @@ type PatternFlowIgmpv1Unused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Unused) Reset() { - *x = PatternFlowIgmpv1Unused{} +func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[706] + mi := &file_otg_proto_msgTypes[704] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[706] +func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[704] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76737,86 +76739,86 @@ func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{704} } -func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Unused_Choice_unspecified + return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// Checksum -type PatternFlowIgmpv1Checksum struct { +// ICMPv6 checksum +type PatternFlowIcmpv6EchoChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of checksum // default = Choice.Enum.generated - Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` // A system generated checksum value // default = Generated.Enum.good - Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` + Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` // A custom checksum value Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowIgmpv1Checksum) Reset() { - *x = PatternFlowIgmpv1Checksum{} +func (x *PatternFlowIcmpv6EchoChecksum) Reset() { + *x = PatternFlowIcmpv6EchoChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[707] + mi := &file_otg_proto_msgTypes[705] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum) String() string { +func (x *PatternFlowIcmpv6EchoChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[707] +func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[705] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76827,66 +76829,135 @@ func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707} +// Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705} } -func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { +func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Checksum_Choice_unspecified + return PatternFlowIcmpv6EchoChecksum_Choice_unspecified } -func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { +func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { if x != nil && x.Generated != nil { return *x.Generated } - return PatternFlowIgmpv1Checksum_Generated_unspecified + return PatternFlowIcmpv6EchoChecksum_Generated_unspecified } -func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { +func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { if x != nil && x.Custom != nil { return *x.Custom } return 0 } -// ipv4 counter pattern -type PatternFlowIgmpv1GroupAddressCounter struct { +// ICMPv6 checksum +type PatternFlowIcmpv6CommonChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIcmpv6CommonChecksum) Reset() { + *x = PatternFlowIcmpv6CommonChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[706] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[706] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706} +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIcmpv6CommonChecksum_Choice_unspecified +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIcmpv6CommonChecksum_Generated_unspecified +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// integer counter pattern +type PatternFlowPppAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 255 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { - *x = PatternFlowIgmpv1GroupAddressCounter{} +func (x *PatternFlowPppAddressCounter) Reset() { + *x = PatternFlowPppAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[708] + mi := &file_otg_proto_msgTypes[707] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { +func (x *PatternFlowPppAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} +func (*PatternFlowPppAddressCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[708] +func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[707] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76897,26 +76968,26 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{708} +// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{707} } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { +func (x *PatternFlowPppAddressCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { +func (x *PatternFlowPppAddressCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { +func (x *PatternFlowPppAddressCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76926,7 +76997,7 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1GroupAddressMetricTag struct { +type PatternFlowPppAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76940,27 +77011,27 @@ type PatternFlowIgmpv1GroupAddressMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { - *x = PatternFlowIgmpv1GroupAddressMetricTag{} +func (x *PatternFlowPppAddressMetricTag) Reset() { + *x = PatternFlowPppAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[709] + mi := &file_otg_proto_msgTypes[708] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { +func (x *PatternFlowPppAddressMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} +func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[709] +func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[708] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76971,74 +77042,74 @@ func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{709} +// Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{708} } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { +func (x *PatternFlowPppAddressMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Group address -type PatternFlowIgmpv1GroupAddress struct { +// PPP address +type PatternFlowPppAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 255 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [255] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddress) Reset() { - *x = PatternFlowIgmpv1GroupAddress{} +func (x *PatternFlowPppAddress) Reset() { + *x = PatternFlowPppAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[710] + mi := &file_otg_proto_msgTypes[709] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddress) String() string { +func (x *PatternFlowPppAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} +func (*PatternFlowPppAddress) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[710] +func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[709] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77049,47 +77120,47 @@ func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710} +// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{709} } -func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { +func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1GroupAddress_Choice_unspecified + return PatternFlowPppAddress_Choice_unspecified } -func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { +func (x *PatternFlowPppAddress) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { +func (x *PatternFlowPppAddress) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { +func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { if x != nil { return x.MetricTags } @@ -77097,13 +77168,13 @@ func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1Grou } // integer counter pattern -type PatternFlowMplsLabelCounter struct { +type PatternFlowPppControlCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 16 + // default = 3 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77113,23 +77184,23 @@ type PatternFlowMplsLabelCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsLabelCounter) Reset() { - *x = PatternFlowMplsLabelCounter{} +func (x *PatternFlowPppControlCounter) Reset() { + *x = PatternFlowPppControlCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[711] + mi := &file_otg_proto_msgTypes[710] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelCounter) String() string { +func (x *PatternFlowPppControlCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelCounter) ProtoMessage() {} +func (*PatternFlowPppControlCounter) ProtoMessage() {} -func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[711] +func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[710] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77140,26 +77211,26 @@ func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{711} +// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{710} } -func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { +func (x *PatternFlowPppControlCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { +func (x *PatternFlowPppControlCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { +func (x *PatternFlowPppControlCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77169,7 +77240,7 @@ func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsLabelMetricTag struct { +type PatternFlowPppControlMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77183,27 +77254,27 @@ type PatternFlowMplsLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsLabelMetricTag) Reset() { - *x = PatternFlowMplsLabelMetricTag{} +func (x *PatternFlowPppControlMetricTag) Reset() { + *x = PatternFlowPppControlMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[712] + mi := &file_otg_proto_msgTypes[711] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelMetricTag) String() string { +func (x *PatternFlowPppControlMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} +func (*PatternFlowPppControlMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[712] +func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[711] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77214,79 +77285,74 @@ func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{712} +// Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{711} } -func (x *PatternFlowMplsLabelMetricTag) GetName() string { +func (x *PatternFlowPppControlMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Label of routers -type PatternFlowMplsLabel struct { +// PPP control +type PatternFlowPppControl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 16 + // default = 3 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [16] + // default = [3] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 16 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsLabel) Reset() { - *x = PatternFlowMplsLabel{} +func (x *PatternFlowPppControl) Reset() { + *x = PatternFlowPppControl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[713] + mi := &file_otg_proto_msgTypes[712] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabel) String() string { +func (x *PatternFlowPppControl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel) ProtoMessage() {} +func (*PatternFlowPppControl) ProtoMessage() {} -func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[713] +func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[712] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77297,54 +77363,47 @@ func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713} +// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{712} } -func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { +func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsLabel_Choice_unspecified + return PatternFlowPppControl_Choice_unspecified } -func (x *PatternFlowMplsLabel) GetValue() uint32 { +func (x *PatternFlowPppControl) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsLabel) GetValues() []uint32 { +func (x *PatternFlowPppControl) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsLabel) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { +func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { if x != nil { return x.MetricTags } @@ -77352,13 +77411,13 @@ func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag } // integer counter pattern -type PatternFlowMplsTrafficClassCounter struct { +type PatternFlowPppProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 33 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77368,23 +77427,23 @@ type PatternFlowMplsTrafficClassCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsTrafficClassCounter) Reset() { - *x = PatternFlowMplsTrafficClassCounter{} +func (x *PatternFlowPppProtocolTypeCounter) Reset() { + *x = PatternFlowPppProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[714] + mi := &file_otg_proto_msgTypes[713] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassCounter) String() string { +func (x *PatternFlowPppProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} +func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[714] +func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[713] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77395,26 +77454,26 @@ func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{714} +// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{713} } -func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77424,7 +77483,7 @@ func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsTrafficClassMetricTag struct { +type PatternFlowPppProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77438,27 +77497,27 @@ type PatternFlowMplsTrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { - *x = PatternFlowMplsTrafficClassMetricTag{} +func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { + *x = PatternFlowPppProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[715] + mi := &file_otg_proto_msgTypes[714] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassMetricTag) String() string { +func (x *PatternFlowPppProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[715] +func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[714] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77469,74 +77528,79 @@ func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{715} +// Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{714} } -func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { +func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowMplsTrafficClass struct { +// PPP protocol type +type PatternFlowPppProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 33 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [33] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 33 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTrafficClass) Reset() { - *x = PatternFlowMplsTrafficClass{} +func (x *PatternFlowPppProtocolType) Reset() { + *x = PatternFlowPppProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[716] + mi := &file_otg_proto_msgTypes[715] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClass) String() string { +func (x *PatternFlowPppProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass) ProtoMessage() {} +func (*PatternFlowPppProtocolType) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[716] +func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[715] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77547,47 +77611,54 @@ func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716} +// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{715} } -func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { +func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTrafficClass_Choice_unspecified + return PatternFlowPppProtocolType_Choice_unspecified } -func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { +func (x *PatternFlowPppProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { +func (x *PatternFlowPppProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowPppProtocolType) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { +func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -77595,7 +77666,7 @@ func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficC } // integer counter pattern -type PatternFlowMplsBottomOfStackCounter struct { +type PatternFlowIgmpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77611,23 +77682,23 @@ type PatternFlowMplsBottomOfStackCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsBottomOfStackCounter) Reset() { - *x = PatternFlowMplsBottomOfStackCounter{} +func (x *PatternFlowIgmpv1VersionCounter) Reset() { + *x = PatternFlowIgmpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[717] + mi := &file_otg_proto_msgTypes[716] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackCounter) String() string { +func (x *PatternFlowIgmpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[717] +func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[716] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77638,26 +77709,26 @@ func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{717} +// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{716} } -func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77667,7 +77738,7 @@ func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsBottomOfStackMetricTag struct { +type PatternFlowIgmpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77681,27 +77752,27 @@ type PatternFlowMplsBottomOfStackMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { - *x = PatternFlowMplsBottomOfStackMetricTag{} +func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { + *x = PatternFlowIgmpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[718] + mi := &file_otg_proto_msgTypes[717] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { +func (x *PatternFlowIgmpv1VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} +func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[718] +func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[717] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77712,79 +77783,74 @@ func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{718} +// Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{717} } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { +func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { +func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { +func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Bottom of stack -type PatternFlowMplsBottomOfStack struct { +// Version number +type PatternFlowIgmpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 1 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsBottomOfStack) Reset() { - *x = PatternFlowMplsBottomOfStack{} +func (x *PatternFlowIgmpv1Version) Reset() { + *x = PatternFlowIgmpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[719] + mi := &file_otg_proto_msgTypes[718] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStack) String() string { +func (x *PatternFlowIgmpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} +func (*PatternFlowIgmpv1Version) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[719] +func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[718] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77795,54 +77861,47 @@ func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719} +// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{718} } -func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { +func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsBottomOfStack_Choice_unspecified + return PatternFlowIgmpv1Version_Choice_unspecified } -func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { +func (x *PatternFlowIgmpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { +func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { if x != nil { return x.MetricTags } @@ -77850,13 +77909,13 @@ func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomO } // integer counter pattern -type PatternFlowMplsTimeToLiveCounter struct { +type PatternFlowIgmpv1TypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77866,23 +77925,23 @@ type PatternFlowMplsTimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsTimeToLiveCounter) Reset() { - *x = PatternFlowMplsTimeToLiveCounter{} +func (x *PatternFlowIgmpv1TypeCounter) Reset() { + *x = PatternFlowIgmpv1TypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[720] + mi := &file_otg_proto_msgTypes[719] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveCounter) String() string { +func (x *PatternFlowIgmpv1TypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[720] +func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[719] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77893,26 +77952,26 @@ func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720} +// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{719} } -func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77922,7 +77981,7 @@ func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsTimeToLiveMetricTag struct { +type PatternFlowIgmpv1TypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77936,27 +77995,27 @@ type PatternFlowMplsTimeToLiveMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { - *x = PatternFlowMplsTimeToLiveMetricTag{} +func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { + *x = PatternFlowIgmpv1TypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[721] + mi := &file_otg_proto_msgTypes[720] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { +func (x *PatternFlowIgmpv1TypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[721] +func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[720] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77967,74 +78026,74 @@ func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721} +// Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{720} } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { +func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowMplsTimeToLive struct { +// Type of message +type PatternFlowIgmpv1Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTimeToLive) Reset() { - *x = PatternFlowMplsTimeToLive{} +func (x *PatternFlowIgmpv1Type) Reset() { + *x = PatternFlowIgmpv1Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[722] + mi := &file_otg_proto_msgTypes[721] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLive) String() string { +func (x *PatternFlowIgmpv1Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive) ProtoMessage() {} +func (*PatternFlowIgmpv1Type) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[722] +func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[721] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78045,87 +78104,87 @@ func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722} +// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{721} } -func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { +func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTimeToLive_Choice_unspecified + return PatternFlowIgmpv1Type_Choice_unspecified } -func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { +func (x *PatternFlowIgmpv1Type) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { +func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { if x != nil { return x.MetricTags } return nil } -// Version details -type Version struct { +// integer counter pattern +type PatternFlowIgmpv1UnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Version of API specification - // default = - ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` - // Version of SDK generated from API specification - // default = - SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` - // Version of application consuming or serving the API - // default = - AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *Version) Reset() { - *x = Version{} +func (x *PatternFlowIgmpv1UnusedCounter) Reset() { + *x = PatternFlowIgmpv1UnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[723] + mi := &file_otg_proto_msgTypes[722] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Version) String() string { +func (x *PatternFlowIgmpv1UnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Version) ProtoMessage() {} +func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} -func (x *Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[723] +func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[722] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78136,59 +78195,70 @@ func (x *Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Version.ProtoReflect.Descriptor instead. -func (*Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{723} +// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{722} } -func (x *Version) GetApiSpecVersion() string { - if x != nil && x.ApiSpecVersion != nil { - return *x.ApiSpecVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return "" + return 0 } -func (x *Version) GetSdkVersion() string { - if x != nil && x.SdkVersion != nil { - return *x.SdkVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return "" + return 0 } -func (x *Version) GetAppVersion() string { - if x != nil && x.AppVersion != nil { - return *x.AppVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return "" + return 0 } -// The request has succeeded with no application content but the server -// may return a list of detailed warnings. -type Success struct { +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowIgmpv1UnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` -} - -func (x *Success) Reset() { - *x = Success{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[724] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { + *x = PatternFlowIgmpv1UnusedMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[723] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Success) String() string { +func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Success) ProtoMessage() {} +func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} -func (x *Success) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[724] +func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[723] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78199,44 +78269,74 @@ func (x *Success) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Success.ProtoReflect.Descriptor instead. -func (*Success) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724} +// Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{723} } -func (x *Success) GetWarning() *Warning { +func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { if x != nil { - return x.Warning + return x.Name } - return nil + return "" } -// The request did not succeed and server has responded with error details. -type Failure struct { +func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Unused +type PatternFlowIgmpv1Unused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *Failure) Reset() { - *x = Failure{} +func (x *PatternFlowIgmpv1Unused) Reset() { + *x = PatternFlowIgmpv1Unused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[725] + mi := &file_otg_proto_msgTypes[724] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Failure) String() string { +func (x *PatternFlowIgmpv1Unused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Failure) ProtoMessage() {} +func (*PatternFlowIgmpv1Unused) ProtoMessage() {} -func (x *Failure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[725] +func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[724] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78247,90 +78347,86 @@ func (x *Failure) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Failure.ProtoReflect.Descriptor instead. -func (*Failure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{725} +// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724} } -func (x *Failure) GetError() *Error { - if x != nil { - return x.Error +func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type SetConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + return PatternFlowIgmpv1Unused_Choice_unspecified } -func (x *SetConfigRequest) Reset() { - *x = SetConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[726] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *SetConfigRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*SetConfigRequest) ProtoMessage() {} - -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[726] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. -func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{726} +func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *SetConfigRequest) GetConfig() *Config { +func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { if x != nil { - return x.Config + return x.MetricTags } return nil } -type UpdateConfigRequest struct { +// Checksum +type PatternFlowIgmpv1Checksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *UpdateConfigRequest) Reset() { - *x = UpdateConfigRequest{} +func (x *PatternFlowIgmpv1Checksum) Reset() { + *x = PatternFlowIgmpv1Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[727] + mi := &file_otg_proto_msgTypes[725] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigRequest) String() string { +func (x *PatternFlowIgmpv1Checksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigRequest) ProtoMessage() {} +func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} -func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[727] +func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[725] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78341,43 +78437,66 @@ func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. -func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727} +// Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725} } -func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { - if x != nil { - return x.ConfigUpdate +func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return PatternFlowIgmpv1Checksum_Choice_unspecified } -type SetConfigResponse struct { +func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIgmpv1Checksum_Generated_unspecified +} + +func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// ipv4 counter pattern +type PatternFlowIgmpv1GroupAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { + *x = PatternFlowIgmpv1GroupAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[728] + mi := &file_otg_proto_msgTypes[726] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[728] +func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[726] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78388,43 +78507,70 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{728} +// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{726} } -func (x *SetConfigResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return "" } -type GetConfigResponse struct { +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowIgmpv1GroupAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 32 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetConfigResponse) Reset() { - *x = GetConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { + *x = PatternFlowIgmpv1GroupAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[729] + mi := &file_otg_proto_msgTypes[727] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[729] +func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[727] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78435,43 +78581,74 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. -func (*GetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{729} +// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{727} } -func (x *GetConfigResponse) GetConfig() *Config { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { if x != nil { - return x.Config + return x.Name } - return nil + return "" } -type UpdateConfigResponse struct { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Group address +type PatternFlowIgmpv1GroupAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *UpdateConfigResponse) Reset() { - *x = UpdateConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddress) Reset() { + *x = PatternFlowIgmpv1GroupAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[730] + mi := &file_otg_proto_msgTypes[728] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} -func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[730] +func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[728] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78482,90 +78659,87 @@ func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. -func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730} +// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728} } -func (x *UpdateConfigResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type SetControlStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` + return PatternFlowIgmpv1GroupAddress_Choice_unspecified } -func (x *SetControlStateRequest) Reset() { - *x = SetControlStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[731] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } + return "" } -func (x *SetControlStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { + if x != nil { + return x.Values + } + return nil } -func (*SetControlStateRequest) ProtoMessage() {} - -func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[731] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. -func (*SetControlStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{731} +func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *SetControlStateRequest) GetControlState() *ControlState { +func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { if x != nil { - return x.ControlState + return x.MetricTags } return nil } -type SetControlStateResponse struct { +// integer counter pattern +type PatternFlowMplsLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = 16 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *SetControlStateResponse) Reset() { - *x = SetControlStateResponse{} +func (x *PatternFlowMplsLabelCounter) Reset() { + *x = PatternFlowMplsLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[732] + mi := &file_otg_proto_msgTypes[729] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateResponse) String() string { +func (x *PatternFlowMplsLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateResponse) ProtoMessage() {} +func (*PatternFlowMplsLabelCounter) ProtoMessage() {} -func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[732] +func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[729] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78576,43 +78750,70 @@ func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. -func (*SetControlStateResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{732} +// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{729} } -func (x *SetControlStateResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetControlActionRequest struct { +func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 20 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *SetControlActionRequest) Reset() { - *x = SetControlActionRequest{} +func (x *PatternFlowMplsLabelMetricTag) Reset() { + *x = PatternFlowMplsLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[733] + mi := &file_otg_proto_msgTypes[730] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionRequest) String() string { +func (x *PatternFlowMplsLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionRequest) ProtoMessage() {} +func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} -func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[733] +func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[730] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78623,43 +78824,79 @@ func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. -func (*SetControlActionRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733} -} - -func (x *SetControlActionRequest) GetControlAction() *ControlAction { +// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{730} +} + +func (x *PatternFlowMplsLabelMetricTag) GetName() string { if x != nil { - return x.ControlAction + return x.Name } - return nil + return "" } -type SetControlActionResponse struct { +func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Label of routers +type PatternFlowMplsLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` + // Description missing in models + // default = Choice.Enum.auto + Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 16 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [16] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 16 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *SetControlActionResponse) Reset() { - *x = SetControlActionResponse{} +func (x *PatternFlowMplsLabel) Reset() { + *x = PatternFlowMplsLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[734] + mi := &file_otg_proto_msgTypes[731] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionResponse) String() string { +func (x *PatternFlowMplsLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionResponse) ProtoMessage() {} +func (*PatternFlowMplsLabel) ProtoMessage() {} -func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[734] +func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[731] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78670,90 +78907,94 @@ func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. -func (*SetControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{734} +// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731} } -func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { - if x != nil { - return x.ControlActionResponse +func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return PatternFlowMplsLabel_Choice_unspecified } -type GetMetricsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` +func (x *PatternFlowMplsLabel) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } -func (x *GetMetricsRequest) Reset() { - *x = GetMetricsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[735] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsLabel) GetValues() []uint32 { + if x != nil { + return x.Values } + return nil } -func (x *GetMetricsRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsLabel) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 } -func (*GetMetricsRequest) ProtoMessage() {} - -func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[735] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{735} +func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { +func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { if x != nil { - return x.MetricsRequest + return x.MetricTags } return nil } -type GetMetricsResponse struct { +// integer counter pattern +type PatternFlowMplsTrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetMetricsResponse) Reset() { - *x = GetMetricsResponse{} +func (x *PatternFlowMplsTrafficClassCounter) Reset() { + *x = PatternFlowMplsTrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[736] + mi := &file_otg_proto_msgTypes[732] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsResponse) String() string { +func (x *PatternFlowMplsTrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsResponse) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} -func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[736] +func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[732] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78764,43 +79005,70 @@ func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. -func (*GetMetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736} +// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{732} } -func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { - if x != nil { - return x.MetricsResponse +func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetStatesRequest struct { +func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsTrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 3 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetStatesRequest) Reset() { - *x = GetStatesRequest{} +func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { + *x = PatternFlowMplsTrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[737] + mi := &file_otg_proto_msgTypes[733] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesRequest) String() string { +func (x *PatternFlowMplsTrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesRequest) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} -func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[737] +func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[733] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78811,43 +79079,74 @@ func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. -func (*GetStatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{737} +// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{733} } -func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { +func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { if x != nil { - return x.StatesRequest + return x.Name } - return nil + return "" } -type GetStatesResponse struct { +func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Traffic class +type PatternFlowMplsTrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *GetStatesResponse) Reset() { - *x = GetStatesResponse{} +func (x *PatternFlowMplsTrafficClass) Reset() { + *x = PatternFlowMplsTrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[738] + mi := &file_otg_proto_msgTypes[734] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesResponse) String() string { +func (x *PatternFlowMplsTrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesResponse) ProtoMessage() {} +func (*PatternFlowMplsTrafficClass) ProtoMessage() {} -func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[738] +func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[734] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78858,90 +79157,87 @@ func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. -func (*GetStatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{738} +// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734} } -func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { - if x != nil { - return x.StatesResponse +func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type GetCaptureRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` + return PatternFlowMplsTrafficClass_Choice_unspecified } -func (x *GetCaptureRequest) Reset() { - *x = GetCaptureRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[739] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *GetCaptureRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*GetCaptureRequest) ProtoMessage() {} - -func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[739] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. -func (*GetCaptureRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739} +func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { +func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { if x != nil { - return x.CaptureRequest + return x.MetricTags } return nil } -type GetCaptureResponse struct { +// integer counter pattern +type PatternFlowMplsBottomOfStackCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` + // Description missing in models + // default = 1 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetCaptureResponse) Reset() { - *x = GetCaptureResponse{} +func (x *PatternFlowMplsBottomOfStackCounter) Reset() { + *x = PatternFlowMplsBottomOfStackCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[740] + mi := &file_otg_proto_msgTypes[735] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureResponse) String() string { +func (x *PatternFlowMplsBottomOfStackCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureResponse) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} -func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[740] +func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[735] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78952,43 +79248,70 @@ func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. -func (*GetCaptureResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740} +// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{735} } -func (x *GetCaptureResponse) GetResponseBytes() []byte { - if x != nil { - return x.ResponseBytes +func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetVersionResponse struct { +func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsBottomOfStackMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetVersionResponse) Reset() { - *x = GetVersionResponse{} +func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { + *x = PatternFlowMplsBottomOfStackMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[741] + mi := &file_otg_proto_msgTypes[736] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetVersionResponse) String() string { +func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionResponse) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} -func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[741] +func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[736] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78999,41 +79322,79 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. -func (*GetVersionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{741} +// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{736} } -func (x *GetVersionResponse) GetVersion() *Version { +func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { if x != nil { - return x.Version + return x.Name } - return nil + return "" } -type LagProtocol_Choice struct { +func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Bottom of stack +type PatternFlowMplsBottomOfStack struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.auto + Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 1 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [1] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 1 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *LagProtocol_Choice) Reset() { - *x = LagProtocol_Choice{} +func (x *PatternFlowMplsBottomOfStack) Reset() { + *x = PatternFlowMplsBottomOfStack{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[742] + mi := &file_otg_proto_msgTypes[737] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocol_Choice) String() string { +func (x *PatternFlowMplsBottomOfStack) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocol_Choice) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} -func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[742] +func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[737] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79044,72 +79405,94 @@ func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. -func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{6, 0} -} - -type LagPortLacp_ActorActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737} } -func (x *LagPortLacp_ActorActivity) Reset() { - *x = LagPortLacp_ActorActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[743] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } + return PatternFlowMplsBottomOfStack_Choice_unspecified } -func (x *LagPortLacp_ActorActivity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } -func (*LagPortLacp_ActorActivity) ProtoMessage() {} +func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} -func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[743] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. -func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{9, 0} +func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Increment + } + return nil } -type EthernetConnection_Choice struct { +func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowMplsTimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *EthernetConnection_Choice) Reset() { - *x = EthernetConnection_Choice{} +func (x *PatternFlowMplsTimeToLiveCounter) Reset() { + *x = PatternFlowMplsTimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[744] + mi := &file_otg_proto_msgTypes[738] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EthernetConnection_Choice) String() string { +func (x *PatternFlowMplsTimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EthernetConnection_Choice) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} -func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[744] +func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[738] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79120,34 +79503,70 @@ func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. -func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{12, 0} +// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{738} } -type DeviceVlan_Tpid struct { +func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsTimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *DeviceVlan_Tpid) Reset() { - *x = DeviceVlan_Tpid{} +func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { + *x = PatternFlowMplsTimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[745] + mi := &file_otg_proto_msgTypes[739] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVlan_Tpid) String() string { +func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVlan_Tpid) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} -func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[745] +func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[739] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79158,34 +79577,74 @@ func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. -func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{13, 0} +// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{739} } -type DeviceIpv4GatewayMAC_Choice struct { +func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Time to live +type PatternFlowMplsTimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 64 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [64] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *DeviceIpv4GatewayMAC_Choice) Reset() { - *x = DeviceIpv4GatewayMAC_Choice{} +func (x *PatternFlowMplsTimeToLive) Reset() { + *x = PatternFlowMplsTimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[746] + mi := &file_otg_proto_msgTypes[740] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv4GatewayMAC_Choice) String() string { +func (x *PatternFlowMplsTimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} +func (*PatternFlowMplsTimeToLive) ProtoMessage() {} -func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[746] +func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[740] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79196,34 +79655,87 @@ func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{16, 0} +// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740} } -type DeviceIpv6GatewayMAC_Choice struct { +func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowMplsTimeToLive_Choice_unspecified +} + +func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// Version details +type Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Version of API specification + // default = + ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` + // Version of SDK generated from API specification + // default = + SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` + // Version of application consuming or serving the API + // default = + AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` } -func (x *DeviceIpv6GatewayMAC_Choice) Reset() { - *x = DeviceIpv6GatewayMAC_Choice{} +func (x *Version) Reset() { + *x = Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[747] + mi := &file_otg_proto_msgTypes[741] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv6GatewayMAC_Choice) String() string { +func (x *Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} +func (*Version) ProtoMessage() {} -func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[747] +func (x *Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[741] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79234,34 +79746,59 @@ func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{19, 0} +// Deprecated: Use Version.ProtoReflect.Descriptor instead. +func (*Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{741} } -type Layer1_Speed struct { +func (x *Version) GetApiSpecVersion() string { + if x != nil && x.ApiSpecVersion != nil { + return *x.ApiSpecVersion + } + return "" +} + +func (x *Version) GetSdkVersion() string { + if x != nil && x.SdkVersion != nil { + return *x.SdkVersion + } + return "" +} + +func (x *Version) GetAppVersion() string { + if x != nil && x.AppVersion != nil { + return *x.AppVersion + } + return "" +} + +// The request has succeeded with no application content but the server +// may return a list of detailed warnings. +type Success struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *Layer1_Speed) Reset() { - *x = Layer1_Speed{} +func (x *Success) Reset() { + *x = Success{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[748] + mi := &file_otg_proto_msgTypes[742] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Speed) String() string { +func (x *Success) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Speed) ProtoMessage() {} +func (*Success) ProtoMessage() {} -func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[748] +func (x *Success) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[742] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79272,34 +79809,44 @@ func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. -func (*Layer1_Speed) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 0} +// Deprecated: Use Success.ProtoReflect.Descriptor instead. +func (*Success) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{742} } -type Layer1_Media struct { +func (x *Success) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +// The request did not succeed and server has responded with error details. +type Failure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } -func (x *Layer1_Media) Reset() { - *x = Layer1_Media{} +func (x *Failure) Reset() { + *x = Failure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[749] + mi := &file_otg_proto_msgTypes[743] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Media) String() string { +func (x *Failure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Media) ProtoMessage() {} +func (*Failure) ProtoMessage() {} -func (x *Layer1_Media) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[749] +func (x *Failure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[743] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79310,34 +79857,43 @@ func (x *Layer1_Media) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. -func (*Layer1_Media) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 1} +// Deprecated: Use Failure.ProtoReflect.Descriptor instead. +func (*Failure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{743} } -type Layer1FlowControl_Choice struct { +func (x *Failure) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type SetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *Layer1FlowControl_Choice) Reset() { - *x = Layer1FlowControl_Choice{} +func (x *SetConfigRequest) Reset() { + *x = SetConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[750] + mi := &file_otg_proto_msgTypes[744] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1FlowControl_Choice) String() string { +func (x *SetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1FlowControl_Choice) ProtoMessage() {} +func (*SetConfigRequest) ProtoMessage() {} -func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[750] +func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[744] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79348,34 +79904,43 @@ func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. -func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{22, 0} +// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. +func (*SetConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{744} } -type Capture_Format struct { +func (x *SetConfigRequest) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` } -func (x *Capture_Format) Reset() { - *x = Capture_Format{} +func (x *UpdateConfigRequest) Reset() { + *x = UpdateConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[751] + mi := &file_otg_proto_msgTypes[745] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Capture_Format) String() string { +func (x *UpdateConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Capture_Format) ProtoMessage() {} +func (*UpdateConfigRequest) ProtoMessage() {} -func (x *Capture_Format) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[751] +func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[745] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79386,34 +79951,43 @@ func (x *Capture_Format) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. -func (*Capture_Format) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{25, 0} +// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{745} } -type CaptureFilter_Choice struct { +func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { + if x != nil { + return x.ConfigUpdate + } + return nil +} + +type SetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *CaptureFilter_Choice) Reset() { - *x = CaptureFilter_Choice{} +func (x *SetConfigResponse) Reset() { + *x = SetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[752] + mi := &file_otg_proto_msgTypes[746] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureFilter_Choice) String() string { +func (x *SetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureFilter_Choice) ProtoMessage() {} +func (*SetConfigResponse) ProtoMessage() {} -func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[752] +func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[746] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79424,34 +79998,43 @@ func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. -func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{26, 0} +// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. +func (*SetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746} } -type IsisInterface_NetworkType struct { +func (x *SetConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type GetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *IsisInterface_NetworkType) Reset() { - *x = IsisInterface_NetworkType{} +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[753] + mi := &file_otg_proto_msgTypes[747] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface_NetworkType) String() string { +func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_NetworkType) ProtoMessage() {} +func (*GetConfigResponse) ProtoMessage() {} -func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[753] +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[747] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79462,34 +80045,43 @@ func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. -func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 0} +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{747} } -type IsisInterface_LevelType struct { +func (x *GetConfigResponse) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisInterface_LevelType) Reset() { - *x = IsisInterface_LevelType{} +func (x *UpdateConfigResponse) Reset() { + *x = UpdateConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[754] + mi := &file_otg_proto_msgTypes[748] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface_LevelType) String() string { +func (x *UpdateConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_LevelType) ProtoMessage() {} +func (*UpdateConfigResponse) ProtoMessage() {} -func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[754] +func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[748] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79500,34 +80092,43 @@ func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. -func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 1} -} +// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. +func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{748} +} -type IsisInterfaceAuthentication_AuthType struct { +func (x *UpdateConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` } -func (x *IsisInterfaceAuthentication_AuthType) Reset() { - *x = IsisInterfaceAuthentication_AuthType{} +func (x *SetControlStateRequest) Reset() { + *x = SetControlStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[755] + mi := &file_otg_proto_msgTypes[749] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceAuthentication_AuthType) String() string { +func (x *SetControlStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} +func (*SetControlStateRequest) ProtoMessage() {} -func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[755] +func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[749] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79538,34 +80139,43 @@ func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. -func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{42, 0} +// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. +func (*SetControlStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{749} } -type IsisAuthenticationBase_AuthType struct { +func (x *SetControlStateRequest) GetControlState() *ControlState { + if x != nil { + return x.ControlState + } + return nil +} + +type SetControlStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisAuthenticationBase_AuthType) Reset() { - *x = IsisAuthenticationBase_AuthType{} +func (x *SetControlStateResponse) Reset() { + *x = SetControlStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[756] + mi := &file_otg_proto_msgTypes[750] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisAuthenticationBase_AuthType) String() string { +func (x *SetControlStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} +func (*SetControlStateResponse) ProtoMessage() {} -func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[756] +func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[750] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79576,34 +80186,43 @@ func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. -func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{48, 0} +// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. +func (*SetControlStateResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{750} } -type IsisV4RouteRange_OriginType struct { +func (x *SetControlStateResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` } -func (x *IsisV4RouteRange_OriginType) Reset() { - *x = IsisV4RouteRange_OriginType{} +func (x *SetControlActionRequest) Reset() { + *x = SetControlActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[757] + mi := &file_otg_proto_msgTypes[751] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_OriginType) String() string { +func (x *SetControlActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_OriginType) ProtoMessage() {} +func (*SetControlActionRequest) ProtoMessage() {} -func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[757] +func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[751] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79614,34 +80233,43 @@ func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 0} +// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. +func (*SetControlActionRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{751} } -type IsisV4RouteRange_RedistributionType struct { +func (x *SetControlActionRequest) GetControlAction() *ControlAction { + if x != nil { + return x.ControlAction + } + return nil +} + +type SetControlActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` } -func (x *IsisV4RouteRange_RedistributionType) Reset() { - *x = IsisV4RouteRange_RedistributionType{} +func (x *SetControlActionResponse) Reset() { + *x = SetControlActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[758] + mi := &file_otg_proto_msgTypes[752] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_RedistributionType) String() string { +func (x *SetControlActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} +func (*SetControlActionResponse) ProtoMessage() {} -func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[758] +func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[752] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79652,34 +80280,43 @@ func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 1} +// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. +func (*SetControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{752} } -type IsisV6RouteRange_OriginType struct { +func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { + if x != nil { + return x.ControlActionResponse + } + return nil +} + +type GetMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` } -func (x *IsisV6RouteRange_OriginType) Reset() { - *x = IsisV6RouteRange_OriginType{} +func (x *GetMetricsRequest) Reset() { + *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[759] + mi := &file_otg_proto_msgTypes[753] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange_OriginType) String() string { +func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_OriginType) ProtoMessage() {} +func (*GetMetricsRequest) ProtoMessage() {} -func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[759] +func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[753] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79690,34 +80327,43 @@ func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 0} +// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{753} } -type IsisV6RouteRange_RedistributionType struct { +func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { + if x != nil { + return x.MetricsRequest + } + return nil +} + +type GetMetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` } -func (x *IsisV6RouteRange_RedistributionType) Reset() { - *x = IsisV6RouteRange_RedistributionType{} +func (x *GetMetricsResponse) Reset() { + *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[760] + mi := &file_otg_proto_msgTypes[754] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange_RedistributionType) String() string { +func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} +func (*GetMetricsResponse) ProtoMessage() {} -func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[760] +func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[754] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79728,34 +80374,43 @@ func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 1} +// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetMetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{754} } -type DeviceBgpMessageHeaderError_Subcode struct { +func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { + if x != nil { + return x.MetricsResponse + } + return nil +} + +type GetStatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` } -func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { - *x = DeviceBgpMessageHeaderError_Subcode{} +func (x *GetStatesRequest) Reset() { + *x = GetStatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[761] + mi := &file_otg_proto_msgTypes[755] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpMessageHeaderError_Subcode) String() string { +func (x *GetStatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} +func (*GetStatesRequest) ProtoMessage() {} -func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[761] +func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[755] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79766,34 +80421,43 @@ func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 0} +// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. +func (*GetStatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{755} } -type DeviceBgpOpenMessageError_Subcode struct { +func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { + if x != nil { + return x.StatesRequest + } + return nil +} + +type GetStatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` } -func (x *DeviceBgpOpenMessageError_Subcode) Reset() { - *x = DeviceBgpOpenMessageError_Subcode{} +func (x *GetStatesResponse) Reset() { + *x = GetStatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[762] + mi := &file_otg_proto_msgTypes[756] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpOpenMessageError_Subcode) String() string { +func (x *GetStatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} +func (*GetStatesResponse) ProtoMessage() {} -func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[762] +func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[756] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79804,34 +80468,43 @@ func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{56, 0} +// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. +func (*GetStatesResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{756} } -type DeviceBgpUpdateMessageError_Subcode struct { +func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { + if x != nil { + return x.StatesResponse + } + return nil +} + +type GetCaptureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` } -func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { - *x = DeviceBgpUpdateMessageError_Subcode{} +func (x *GetCaptureRequest) Reset() { + *x = GetCaptureRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[763] + mi := &file_otg_proto_msgTypes[757] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpUpdateMessageError_Subcode) String() string { +func (x *GetCaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} +func (*GetCaptureRequest) ProtoMessage() {} -func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[763] +func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[757] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79842,34 +80515,43 @@ func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{57, 0} +// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. +func (*GetCaptureRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{757} } -type DeviceBgpCeaseError_Subcode struct { +func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { + if x != nil { + return x.CaptureRequest + } + return nil +} + +type GetCaptureResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` } -func (x *DeviceBgpCeaseError_Subcode) Reset() { - *x = DeviceBgpCeaseError_Subcode{} +func (x *GetCaptureResponse) Reset() { + *x = GetCaptureResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[764] + mi := &file_otg_proto_msgTypes[758] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpCeaseError_Subcode) String() string { +func (x *GetCaptureResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} +func (*GetCaptureResponse) ProtoMessage() {} -func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[764] +func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[758] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79880,34 +80562,43 @@ func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{60, 0} +// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. +func (*GetCaptureResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{758} } -type BgpV4Peer_AsType struct { +func (x *GetCaptureResponse) GetResponseBytes() []byte { + if x != nil { + return x.ResponseBytes + } + return nil +} + +type GetVersionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *BgpV4Peer_AsType) Reset() { - *x = BgpV4Peer_AsType{} +func (x *GetVersionResponse) Reset() { + *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[765] + mi := &file_otg_proto_msgTypes[759] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer_AsType) String() string { +func (x *GetVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsType) ProtoMessage() {} +func (*GetVersionResponse) ProtoMessage() {} -func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[765] +func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[759] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79918,34 +80609,41 @@ func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 0} +// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. +func (*GetVersionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{759} } -type BgpV4Peer_AsNumberWidth struct { +func (x *GetVersionResponse) GetVersion() *Version { + if x != nil { + return x.Version + } + return nil +} + +type LagProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4Peer_AsNumberWidth) Reset() { - *x = BgpV4Peer_AsNumberWidth{} +func (x *LagProtocol_Choice) Reset() { + *x = LagProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[766] + mi := &file_otg_proto_msgTypes[760] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer_AsNumberWidth) String() string { +func (x *LagProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} +func (*LagProtocol_Choice) ProtoMessage() {} -func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[766] +func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[760] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79956,34 +80654,34 @@ func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 1} +// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. +func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{6, 0} } -type BgpV4EthernetSegment_ActiveMode struct { +type LagPortLacp_ActorActivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EthernetSegment_ActiveMode) Reset() { - *x = BgpV4EthernetSegment_ActiveMode{} +func (x *LagPortLacp_ActorActivity) Reset() { + *x = LagPortLacp_ActorActivity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[767] + mi := &file_otg_proto_msgTypes[761] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EthernetSegment_ActiveMode) String() string { +func (x *LagPortLacp_ActorActivity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} +func (*LagPortLacp_ActorActivity) ProtoMessage() {} -func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[767] +func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[761] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79994,34 +80692,34 @@ func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 0} +// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. +func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{9, 0} } -type BgpRouteAdvanced_Origin struct { +type EthernetConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteAdvanced_Origin) Reset() { - *x = BgpRouteAdvanced_Origin{} +func (x *EthernetConnection_Choice) Reset() { + *x = EthernetConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[768] + mi := &file_otg_proto_msgTypes[762] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteAdvanced_Origin) String() string { +func (x *EthernetConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteAdvanced_Origin) ProtoMessage() {} +func (*EthernetConnection_Choice) ProtoMessage() {} -func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[768] +func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[762] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80032,34 +80730,34 @@ func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. -func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{66, 0} +// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. +func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{12, 0} } -type BgpCommunity_Type struct { +type DeviceVlan_Tpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpCommunity_Type) Reset() { - *x = BgpCommunity_Type{} +func (x *DeviceVlan_Tpid) Reset() { + *x = DeviceVlan_Tpid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[769] + mi := &file_otg_proto_msgTypes[763] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpCommunity_Type) String() string { +func (x *DeviceVlan_Tpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCommunity_Type) ProtoMessage() {} +func (*DeviceVlan_Tpid) ProtoMessage() {} -func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[769] +func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[763] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80070,34 +80768,34 @@ func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{67, 0} +// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. +func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{13, 0} } -type BgpExtCommunity_Type struct { +type DeviceIpv4GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtCommunity_Type) Reset() { - *x = BgpExtCommunity_Type{} +func (x *DeviceIpv4GatewayMAC_Choice) Reset() { + *x = DeviceIpv4GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[770] + mi := &file_otg_proto_msgTypes[764] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtCommunity_Type) String() string { +func (x *DeviceIpv4GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Type) ProtoMessage() {} +func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[770] +func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[764] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80108,34 +80806,34 @@ func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 0} +// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{16, 0} } -type BgpExtCommunity_Subtype struct { +type DeviceIpv6GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtCommunity_Subtype) Reset() { - *x = BgpExtCommunity_Subtype{} +func (x *DeviceIpv6GatewayMAC_Choice) Reset() { + *x = DeviceIpv6GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[771] + mi := &file_otg_proto_msgTypes[765] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtCommunity_Subtype) String() string { +func (x *DeviceIpv6GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Subtype) ProtoMessage() {} +func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[771] +func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[765] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80146,34 +80844,34 @@ func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 1} +// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{19, 0} } -type BgpAsPath_AsSetMode struct { +type Layer1_Speed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpAsPath_AsSetMode) Reset() { - *x = BgpAsPath_AsSetMode{} +func (x *Layer1_Speed) Reset() { + *x = Layer1_Speed{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[772] + mi := &file_otg_proto_msgTypes[766] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPath_AsSetMode) String() string { +func (x *Layer1_Speed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPath_AsSetMode) ProtoMessage() {} +func (*Layer1_Speed) ProtoMessage() {} -func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[772] +func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[766] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80184,34 +80882,34 @@ func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. -func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{69, 0} +// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. +func (*Layer1_Speed) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 0} } -type BgpAsPathSegment_Type struct { +type Layer1_Media struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpAsPathSegment_Type) Reset() { - *x = BgpAsPathSegment_Type{} +func (x *Layer1_Media) Reset() { + *x = Layer1_Media{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[773] + mi := &file_otg_proto_msgTypes[767] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPathSegment_Type) String() string { +func (x *Layer1_Media) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPathSegment_Type) ProtoMessage() {} +func (*Layer1_Media) ProtoMessage() {} -func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[773] +func (x *Layer1_Media) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[767] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80222,34 +80920,34 @@ func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 0} +// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. +func (*Layer1_Media) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 1} } -type BgpV4EvpnEvis_Choice struct { +type Layer1FlowControl_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EvpnEvis_Choice) Reset() { - *x = BgpV4EvpnEvis_Choice{} +func (x *Layer1FlowControl_Choice) Reset() { + *x = Layer1FlowControl_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[774] + mi := &file_otg_proto_msgTypes[768] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EvpnEvis_Choice) String() string { +func (x *Layer1FlowControl_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} +func (*Layer1FlowControl_Choice) ProtoMessage() {} -func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[774] +func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[768] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80260,34 +80958,34 @@ func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{71, 0} +// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. +func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{22, 0} } -type BgpV4EviVxlan_ReplicationType struct { +type Capture_Format struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EviVxlan_ReplicationType) Reset() { - *x = BgpV4EviVxlan_ReplicationType{} +func (x *Capture_Format) Reset() { + *x = Capture_Format{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[775] + mi := &file_otg_proto_msgTypes[769] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EviVxlan_ReplicationType) String() string { +func (x *Capture_Format) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} +func (*Capture_Format) ProtoMessage() {} -func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[775] +func (x *Capture_Format) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[769] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80298,34 +80996,34 @@ func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{72, 0} +// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. +func (*Capture_Format) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{25, 0} } -type BgpRouteDistinguisher_RdType struct { +type CaptureFilter_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteDistinguisher_RdType) Reset() { - *x = BgpRouteDistinguisher_RdType{} +func (x *CaptureFilter_Choice) Reset() { + *x = CaptureFilter_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[776] + mi := &file_otg_proto_msgTypes[770] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteDistinguisher_RdType) String() string { +func (x *CaptureFilter_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} +func (*CaptureFilter_Choice) ProtoMessage() {} -func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[776] +func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[770] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80336,34 +81034,34 @@ func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. -func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{75, 0} +// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. +func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{26, 0} } -type BgpRouteTarget_RtType struct { +type IsisInterface_NetworkType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteTarget_RtType) Reset() { - *x = BgpRouteTarget_RtType{} +func (x *IsisInterface_NetworkType) Reset() { + *x = IsisInterface_NetworkType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[777] + mi := &file_otg_proto_msgTypes[771] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteTarget_RtType) String() string { +func (x *IsisInterface_NetworkType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteTarget_RtType) ProtoMessage() {} +func (*IsisInterface_NetworkType) ProtoMessage() {} -func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[777] +func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[771] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80374,34 +81072,34 @@ func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. -func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{76, 0} +// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. +func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 0} } -type BgpV4RouteRange_NextHopMode struct { +type IsisInterface_LevelType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopMode) Reset() { - *x = BgpV4RouteRange_NextHopMode{} +func (x *IsisInterface_LevelType) Reset() { + *x = IsisInterface_LevelType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[778] + mi := &file_otg_proto_msgTypes[772] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange_NextHopMode) String() string { +func (x *IsisInterface_LevelType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} +func (*IsisInterface_LevelType) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[778] +func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[772] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80412,34 +81110,34 @@ func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 0} +// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. +func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 1} } -type BgpV4RouteRange_NextHopAddressType struct { +type IsisInterfaceAuthentication_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopAddressType) Reset() { - *x = BgpV4RouteRange_NextHopAddressType{} +func (x *IsisInterfaceAuthentication_AuthType) Reset() { + *x = IsisInterfaceAuthentication_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[779] + mi := &file_otg_proto_msgTypes[773] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange_NextHopAddressType) String() string { +func (x *IsisInterfaceAuthentication_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} +func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[779] +func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[773] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80450,34 +81148,34 @@ func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 1} +// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42, 0} } -type BgpV6RouteRange_NextHopMode struct { +type IsisAuthenticationBase_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopMode) Reset() { - *x = BgpV6RouteRange_NextHopMode{} +func (x *IsisAuthenticationBase_AuthType) Reset() { + *x = IsisAuthenticationBase_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[780] + mi := &file_otg_proto_msgTypes[774] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6RouteRange_NextHopMode) String() string { +func (x *IsisAuthenticationBase_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} +func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[780] +func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[774] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80488,34 +81186,34 @@ func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0} +// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. +func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{48, 0} } -type BgpV6RouteRange_NextHopAddressType struct { +type IsisV4RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopAddressType) Reset() { - *x = BgpV6RouteRange_NextHopAddressType{} +func (x *IsisV4RouteRange_OriginType) Reset() { + *x = IsisV4RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[781] + mi := &file_otg_proto_msgTypes[775] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6RouteRange_NextHopAddressType) String() string { +func (x *IsisV4RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} +func (*IsisV4RouteRange_OriginType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[781] +func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[775] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80526,34 +81224,34 @@ func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 1} +// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 0} } -type BgpSrteV4Policy_NextHopMode struct { +type IsisV4RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopMode) Reset() { - *x = BgpSrteV4Policy_NextHopMode{} +func (x *IsisV4RouteRange_RedistributionType) Reset() { + *x = IsisV4RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[782] + mi := &file_otg_proto_msgTypes[776] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopMode) String() string { +func (x *IsisV4RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} +func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[782] +func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[776] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80564,34 +81262,34 @@ func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 0} +// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 1} } -type BgpSrteV4Policy_NextHopAddressType struct { +type IsisV6RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { - *x = BgpSrteV4Policy_NextHopAddressType{} +func (x *IsisV6RouteRange_OriginType) Reset() { + *x = IsisV6RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[783] + mi := &file_otg_proto_msgTypes[777] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopAddressType) String() string { +func (x *IsisV6RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} +func (*IsisV6RouteRange_OriginType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[783] +func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[777] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80602,34 +81300,34 @@ func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 1} +// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 0} } -type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { +type IsisV6RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { - *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} +func (x *IsisV6RouteRange_RedistributionType) Reset() { + *x = IsisV6RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[784] + mi := &file_otg_proto_msgTypes[778] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { +func (x *IsisV6RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} +func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[784] +func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[778] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80640,34 +81338,34 @@ func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85, 0} +// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 1} } -type BgpSrteBindingSubTlv_BindingSidType struct { +type DeviceBgpMessageHeaderError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { - *x = BgpSrteBindingSubTlv_BindingSidType{} +func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { + *x = DeviceBgpMessageHeaderError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[785] + mi := &file_otg_proto_msgTypes[779] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { +func (x *DeviceBgpMessageHeaderError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} +func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[785] +func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[779] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80678,34 +81376,34 @@ func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87, 0} +// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{55, 0} } -type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { +type DeviceBgpOpenMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} +func (x *DeviceBgpOpenMessageError_Subcode) Reset() { + *x = DeviceBgpOpenMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[786] + mi := &file_otg_proto_msgTypes[780] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { +func (x *DeviceBgpOpenMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} +func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[786] +func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[780] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80716,34 +81414,34 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91, 0} +// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{56, 0} } -type BgpSrteSegment_SegmentType struct { +type DeviceBgpUpdateMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteSegment_SegmentType) Reset() { - *x = BgpSrteSegment_SegmentType{} +func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { + *x = DeviceBgpUpdateMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[787] + mi := &file_otg_proto_msgTypes[781] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegment_SegmentType) String() string { +func (x *DeviceBgpUpdateMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment_SegmentType) ProtoMessage() {} +func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[787] +func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[781] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80754,34 +81452,34 @@ func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93, 0} +// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{57, 0} } -type BgpSrteV6Policy_NextHopMode struct { +type DeviceBgpCeaseError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopMode) Reset() { - *x = BgpSrteV6Policy_NextHopMode{} +func (x *DeviceBgpCeaseError_Subcode) Reset() { + *x = DeviceBgpCeaseError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[788] + mi := &file_otg_proto_msgTypes[782] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopMode) String() string { +func (x *DeviceBgpCeaseError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} +func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[788] +func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[782] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80792,34 +81490,34 @@ func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 0} +// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{60, 0} } -type BgpSrteV6Policy_NextHopAddressType struct { +type BgpV4Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { - *x = BgpSrteV6Policy_NextHopAddressType{} +func (x *BgpV4Peer_AsType) Reset() { + *x = BgpV4Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[789] + mi := &file_otg_proto_msgTypes[783] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopAddressType) String() string { +func (x *BgpV4Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} +func (*BgpV4Peer_AsType) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[789] +func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[783] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80830,34 +81528,34 @@ func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 1} +// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 0} } -type BgpV6Peer_AsType struct { +type BgpV4Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsType) Reset() { - *x = BgpV6Peer_AsType{} +func (x *BgpV4Peer_AsNumberWidth) Reset() { + *x = BgpV4Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[790] + mi := &file_otg_proto_msgTypes[784] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsType) String() string { +func (x *BgpV4Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsType) ProtoMessage() {} +func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} -func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[790] +func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[784] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80868,34 +81566,34 @@ func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 0} +// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 1} } -type BgpV6Peer_AsNumberWidth struct { +type BgpV4EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsNumberWidth) Reset() { - *x = BgpV6Peer_AsNumberWidth{} +func (x *BgpV4EthernetSegment_ActiveMode) Reset() { + *x = BgpV4EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[791] + mi := &file_otg_proto_msgTypes[785] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsNumberWidth) String() string { +func (x *BgpV4EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} +func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[791] +func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[785] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80906,34 +81604,34 @@ func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 1} +// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{64, 0} } -type BgpV6EthernetSegment_ActiveMode struct { +type BgpRouteAdvanced_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EthernetSegment_ActiveMode) Reset() { - *x = BgpV6EthernetSegment_ActiveMode{} +func (x *BgpRouteAdvanced_Origin) Reset() { + *x = BgpRouteAdvanced_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[792] + mi := &file_otg_proto_msgTypes[786] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment_ActiveMode) String() string { +func (x *BgpRouteAdvanced_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} +func (*BgpRouteAdvanced_Origin) ProtoMessage() {} -func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[792] +func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[786] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80944,34 +81642,34 @@ func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0} +// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. +func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{66, 0} } -type BgpV6EvpnEvis_Choice struct { +type BgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EvpnEvis_Choice) Reset() { - *x = BgpV6EvpnEvis_Choice{} +func (x *BgpCommunity_Type) Reset() { + *x = BgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[793] + mi := &file_otg_proto_msgTypes[787] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis_Choice) String() string { +func (x *BgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} +func (*BgpCommunity_Type) ProtoMessage() {} -func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[793] +func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[787] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80982,34 +81680,34 @@ func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114, 0} +// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{67, 0} } -type BgpV6EviVxlan_ReplicationType struct { +type BgpExtCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EviVxlan_ReplicationType) Reset() { - *x = BgpV6EviVxlan_ReplicationType{} +func (x *BgpExtCommunity_Type) Reset() { + *x = BgpExtCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[794] + mi := &file_otg_proto_msgTypes[788] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan_ReplicationType) String() string { +func (x *BgpExtCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} +func (*BgpExtCommunity_Type) ProtoMessage() {} -func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[794] +func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[788] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81020,34 +81718,34 @@ func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115, 0} +// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 0} } -type VxlanV4TunnelDestinationIPMode_Choice struct { +type BgpExtCommunity_Subtype struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV4TunnelDestinationIPMode_Choice{} +func (x *BgpExtCommunity_Subtype) Reset() { + *x = BgpExtCommunity_Subtype{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[795] + mi := &file_otg_proto_msgTypes[789] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { +func (x *BgpExtCommunity_Subtype) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpExtCommunity_Subtype) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[795] +func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[789] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81058,34 +81756,34 @@ func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120, 0} +// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 1} } -type VxlanV6TunnelDestinationIPMode_Choice struct { +type BgpAsPath_AsSetMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV6TunnelDestinationIPMode_Choice{} +func (x *BgpAsPath_AsSetMode) Reset() { + *x = BgpAsPath_AsSetMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[796] + mi := &file_otg_proto_msgTypes[790] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { +func (x *BgpAsPath_AsSetMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpAsPath_AsSetMode) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[796] +func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[790] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81096,34 +81794,34 @@ func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121, 0} +// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. +func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69, 0} } -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { +type BgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} +func (x *BgpAsPathSegment_Type) Reset() { + *x = BgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[797] + mi := &file_otg_proto_msgTypes[791] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { +func (x *BgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} +func (*BgpAsPathSegment_Type) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[797] +func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[791] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81134,34 +81832,34 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132, 0} +// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{70, 0} } -type RsvpEro_PrependNeighborIp struct { +type BgpV4EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEro_PrependNeighborIp) Reset() { - *x = RsvpEro_PrependNeighborIp{} +func (x *BgpV4EvpnEvis_Choice) Reset() { + *x = BgpV4EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[798] + mi := &file_otg_proto_msgTypes[792] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEro_PrependNeighborIp) String() string { +func (x *BgpV4EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} +func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} -func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[798] +func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[792] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81172,34 +81870,34 @@ func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. -func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138, 0} +// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{71, 0} } -type RsvpEroSubobject_Type struct { +type BgpV4EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_Type) Reset() { - *x = RsvpEroSubobject_Type{} +func (x *BgpV4EviVxlan_ReplicationType) Reset() { + *x = BgpV4EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[799] + mi := &file_otg_proto_msgTypes[793] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_Type) String() string { +func (x *BgpV4EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_Type) ProtoMessage() {} +func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} -func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[799] +func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[793] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81210,34 +81908,34 @@ func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 0} +// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{72, 0} } -type RsvpEroSubobject_HopType struct { +type BgpRouteDistinguisher_RdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_HopType) Reset() { - *x = RsvpEroSubobject_HopType{} +func (x *BgpRouteDistinguisher_RdType) Reset() { + *x = BgpRouteDistinguisher_RdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[800] + mi := &file_otg_proto_msgTypes[794] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_HopType) String() string { +func (x *BgpRouteDistinguisher_RdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_HopType) ProtoMessage() {} +func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} -func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[800] +func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[794] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81248,34 +81946,34 @@ func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 1} +// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. +func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{75, 0} } -type FlowTxRx_Choice struct { +type BgpRouteTarget_RtType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTxRx_Choice) Reset() { - *x = FlowTxRx_Choice{} +func (x *BgpRouteTarget_RtType) Reset() { + *x = BgpRouteTarget_RtType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[801] + mi := &file_otg_proto_msgTypes[795] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx_Choice) String() string { +func (x *BgpRouteTarget_RtType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx_Choice) ProtoMessage() {} +func (*BgpRouteTarget_RtType) ProtoMessage() {} -func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[801] +func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[795] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81286,34 +81984,34 @@ func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. -func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0} +// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. +func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{76, 0} } -type FlowRouter_Mode struct { +type BgpV4RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRouter_Mode) Reset() { - *x = FlowRouter_Mode{} +func (x *BgpV4RouteRange_NextHopMode) Reset() { + *x = BgpV4RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[802] + mi := &file_otg_proto_msgTypes[796] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter_Mode) String() string { +func (x *BgpV4RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter_Mode) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[802] +func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[796] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81324,34 +82022,34 @@ func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. -func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0} +// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 0} } -type FlowHeader_Choice struct { +type BgpV4RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowHeader_Choice) Reset() { - *x = FlowHeader_Choice{} +func (x *BgpV4RouteRange_NextHopAddressType) Reset() { + *x = BgpV4RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[803] + mi := &file_otg_proto_msgTypes[797] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowHeader_Choice) String() string { +func (x *BgpV4RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader_Choice) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[803] +func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[797] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81362,34 +82060,34 @@ func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. -func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144, 0} +// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 1} } -type FlowIpv4Priority_Choice struct { +type BgpExtendedCommunity_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Priority_Choice) Reset() { - *x = FlowIpv4Priority_Choice{} +func (x *BgpExtendedCommunity_Choice) Reset() { + *x = BgpExtendedCommunity_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[804] + mi := &file_otg_proto_msgTypes[798] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Priority_Choice) String() string { +func (x *BgpExtendedCommunity_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority_Choice) ProtoMessage() {} +func (*BgpExtendedCommunity_Choice) ProtoMessage() {} -func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[804] +func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[798] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81400,34 +82098,34 @@ func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0} +// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82, 0} } -type FlowIcmp_Choice struct { +type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmp_Choice) Reset() { - *x = FlowIcmp_Choice{} +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[805] + mi := &file_otg_proto_msgTypes[799] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmp_Choice) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[805] +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[799] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81438,34 +82136,34 @@ func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164, 0} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0} } -type FlowIcmpv6_Choice struct { +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmpv6_Choice) Reset() { - *x = FlowIcmpv6_Choice{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[806] + mi := &file_otg_proto_msgTypes[800] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpv6_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} -func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[806] +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[800] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81476,34 +82174,34 @@ func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0} } -type FlowSize_Choice struct { +type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSize_Choice) Reset() { - *x = FlowSize_Choice{} +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[807] + mi := &file_otg_proto_msgTypes[801] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize_Choice) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} -func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[807] +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[801] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81514,34 +82212,34 @@ func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. -func (*FlowSize_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171, 0} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91, 0} } -type FlowSizeWeightPairs_Choice struct { +type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Choice) Reset() { - *x = FlowSizeWeightPairs_Choice{} +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[808] + mi := &file_otg_proto_msgTypes[802] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[808] +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[802] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81552,34 +82250,34 @@ func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0} } -type FlowSizeWeightPairs_Predefined struct { +type BgpExtendedCommunityTransitiveEvpnType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Predefined) Reset() { - *x = FlowSizeWeightPairs_Predefined{} +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[809] + mi := &file_otg_proto_msgTypes[803] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Predefined) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[809] +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[803] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81590,34 +82288,34 @@ func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 1} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0} } -type FlowRate_Choice struct { +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRate_Choice) Reset() { - *x = FlowRate_Choice{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[810] + mi := &file_otg_proto_msgTypes[804] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRate_Choice) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[810] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[804] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81628,34 +82326,34 @@ func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. -func (*FlowRate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{176, 0} +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0} } -type FlowDuration_Choice struct { +type BgpV6RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDuration_Choice) Reset() { - *x = FlowDuration_Choice{} +func (x *BgpV6RouteRange_NextHopMode) Reset() { + *x = BgpV6RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[811] + mi := &file_otg_proto_msgTypes[805] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDuration_Choice) String() string { +func (x *BgpV6RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[811] +func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[805] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81666,34 +82364,34 @@ func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. -func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{177, 0} +// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 0} } -type FlowDelay_Choice struct { +type BgpV6RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDelay_Choice) Reset() { - *x = FlowDelay_Choice{} +func (x *BgpV6RouteRange_NextHopAddressType) Reset() { + *x = BgpV6RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[812] + mi := &file_otg_proto_msgTypes[806] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDelay_Choice) String() string { +func (x *BgpV6RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDelay_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[812] +func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[806] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81704,34 +82402,34 @@ func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. -func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179, 0} +// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 1} } -type FlowDurationInterBurstGap_Choice struct { +type BgpSrteV4Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDurationInterBurstGap_Choice) Reset() { - *x = FlowDurationInterBurstGap_Choice{} +func (x *BgpSrteV4Policy_NextHopMode) Reset() { + *x = BgpSrteV4Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[813] + mi := &file_otg_proto_msgTypes[807] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap_Choice) String() string { +func (x *BgpSrteV4Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} -func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[813] +func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[807] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81742,34 +82440,34 @@ func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 0} } -type FlowLatencyMetrics_Mode struct { +type BgpSrteV4Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowLatencyMetrics_Mode) Reset() { - *x = FlowLatencyMetrics_Mode{} +func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { + *x = BgpSrteV4Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[814] + mi := &file_otg_proto_msgTypes[808] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics_Mode) String() string { +func (x *BgpSrteV4Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics_Mode) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} -func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[814] +func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[808] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81780,34 +82478,34 @@ func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 1} } -type FlowRxTxRatio_Choice struct { +type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRxTxRatio_Choice) Reset() { - *x = FlowRxTxRatio_Choice{} +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { + *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[815] + mi := &file_otg_proto_msgTypes[809] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio_Choice) String() string { +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio_Choice) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} -func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[815] +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[809] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81818,34 +82516,34 @@ func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187, 0} +// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103, 0} } -type EventRequest_Type struct { +type BgpSrteBindingSubTlv_BindingSidType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *EventRequest_Type) Reset() { - *x = EventRequest_Type{} +func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { + *x = BgpSrteBindingSubTlv_BindingSidType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[816] + mi := &file_otg_proto_msgTypes[810] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest_Type) String() string { +func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest_Type) ProtoMessage() {} +func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} -func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[816] +func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[810] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81856,34 +82554,34 @@ func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. -func (*EventRequest_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0} +// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105, 0} } -type LldpConnection_Choice struct { +type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpConnection_Choice) Reset() { - *x = LldpConnection_Choice{} +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[817] + mi := &file_otg_proto_msgTypes[811] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection_Choice) String() string { +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection_Choice) ProtoMessage() {} +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} -func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[817] +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[811] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81894,34 +82592,34 @@ func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. -func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0} +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109, 0} } -type LldpChassisId_Choice struct { +type BgpSrteSegment_SegmentType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisId_Choice) Reset() { - *x = LldpChassisId_Choice{} +func (x *BgpSrteSegment_SegmentType) Reset() { + *x = BgpSrteSegment_SegmentType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[818] + mi := &file_otg_proto_msgTypes[812] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId_Choice) String() string { +func (x *BgpSrteSegment_SegmentType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId_Choice) ProtoMessage() {} +func (*BgpSrteSegment_SegmentType) ProtoMessage() {} -func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[818] +func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[812] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81932,34 +82630,34 @@ func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197, 0} +// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111, 0} } -type LldpPortId_Choice struct { +type BgpSrteV6Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortId_Choice) Reset() { - *x = LldpPortId_Choice{} +func (x *BgpSrteV6Policy_NextHopMode) Reset() { + *x = BgpSrteV6Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[819] + mi := &file_otg_proto_msgTypes[813] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} -func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[819] +func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[813] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81970,34 +82668,34 @@ func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 0} } -type LldpChassisMacSubType_Choice struct { +type BgpSrteV6Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisMacSubType_Choice) Reset() { - *x = LldpChassisMacSubType_Choice{} +func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { + *x = BgpSrteV6Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[820] + mi := &file_otg_proto_msgTypes[814] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} -func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[820] +func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[814] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82008,34 +82706,34 @@ func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 1} } -type LldpPortInterfaceNameSubType_Choice struct { +type BgpV6Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortInterfaceNameSubType_Choice) Reset() { - *x = LldpPortInterfaceNameSubType_Choice{} +func (x *BgpV6Peer_AsType) Reset() { + *x = BgpV6Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[821] + mi := &file_otg_proto_msgTypes[815] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType_Choice) String() string { +func (x *BgpV6Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsType) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[821] +func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[815] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82046,34 +82744,34 @@ func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200, 0} +// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 0} } -type LldpSystemName_Choice struct { +type BgpV6Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpSystemName_Choice) Reset() { - *x = LldpSystemName_Choice{} +func (x *BgpV6Peer_AsNumberWidth) Reset() { + *x = BgpV6Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[822] + mi := &file_otg_proto_msgTypes[816] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpSystemName_Choice) String() string { +func (x *BgpV6Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} -func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[822] +func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[816] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82084,34 +82782,34 @@ func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. -func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0} +// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 1} } -type Error_Kind struct { +type BgpV6EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Error_Kind) Reset() { - *x = Error_Kind{} +func (x *BgpV6EthernetSegment_ActiveMode) Reset() { + *x = BgpV6EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[823] + mi := &file_otg_proto_msgTypes[817] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Error_Kind) String() string { +func (x *BgpV6EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error_Kind) ProtoMessage() {} +func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *Error_Kind) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[823] +func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[817] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82122,34 +82820,34 @@ func (x *Error_Kind) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. -func (*Error_Kind) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202, 0} +// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131, 0} } -type ConfigUpdate_Choice struct { +type BgpV6EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ConfigUpdate_Choice) Reset() { - *x = ConfigUpdate_Choice{} +func (x *BgpV6EvpnEvis_Choice) Reset() { + *x = BgpV6EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[824] + mi := &file_otg_proto_msgTypes[818] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConfigUpdate_Choice) String() string { +func (x *BgpV6EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate_Choice) ProtoMessage() {} +func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} -func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[824] +func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[818] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82160,34 +82858,34 @@ func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. -func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204, 0} +// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132, 0} } -type FlowsUpdate_PropertyNames struct { +type BgpV6EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowsUpdate_PropertyNames) Reset() { - *x = FlowsUpdate_PropertyNames{} +func (x *BgpV6EviVxlan_ReplicationType) Reset() { + *x = BgpV6EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[825] + mi := &file_otg_proto_msgTypes[819] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowsUpdate_PropertyNames) String() string { +func (x *BgpV6EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate_PropertyNames) ProtoMessage() {} +func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} -func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[825] +func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[819] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82198,34 +82896,34 @@ func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. -func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0} +// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133, 0} } -type ControlState_Choice struct { +type VxlanV4TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlState_Choice) Reset() { - *x = ControlState_Choice{} +func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV4TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[826] + mi := &file_otg_proto_msgTypes[820] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlState_Choice) String() string { +func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState_Choice) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[826] +func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[820] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82236,34 +82934,34 @@ func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. -func (*ControlState_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206, 0} +// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{138, 0} } -type StatePort_Choice struct { +type VxlanV6TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePort_Choice) Reset() { - *x = StatePort_Choice{} +func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV6TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[827] + mi := &file_otg_proto_msgTypes[821] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePort_Choice) String() string { +func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort_Choice) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[827] +func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[821] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82274,34 +82972,34 @@ func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. -func (*StatePort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0} +// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{139, 0} } -type StateTraffic_Choice struct { +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTraffic_Choice) Reset() { - *x = StateTraffic_Choice{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[828] + mi := &file_otg_proto_msgTypes[822] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTraffic_Choice) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic_Choice) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} -func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[828] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[822] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82312,34 +83010,34 @@ func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. -func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208, 0} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{150, 0} } -type StateProtocol_Choice struct { +type RsvpEro_PrependNeighborIp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocol_Choice) Reset() { - *x = StateProtocol_Choice{} +func (x *RsvpEro_PrependNeighborIp) Reset() { + *x = RsvpEro_PrependNeighborIp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[829] + mi := &file_otg_proto_msgTypes[823] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocol_Choice) String() string { +func (x *RsvpEro_PrependNeighborIp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol_Choice) ProtoMessage() {} +func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} -func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[829] +func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[823] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82350,34 +83048,34 @@ func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0} +// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. +func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{156, 0} } -type StatePortLink_State struct { +type RsvpEroSubobject_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortLink_State) Reset() { - *x = StatePortLink_State{} +func (x *RsvpEroSubobject_Type) Reset() { + *x = RsvpEroSubobject_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[830] + mi := &file_otg_proto_msgTypes[824] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortLink_State) String() string { +func (x *RsvpEroSubobject_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink_State) ProtoMessage() {} +func (*RsvpEroSubobject_Type) ProtoMessage() {} -func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[830] +func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[824] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82388,34 +83086,34 @@ func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. -func (*StatePortLink_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210, 0} +// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 0} } -type StatePortCapture_State struct { +type RsvpEroSubobject_HopType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortCapture_State) Reset() { - *x = StatePortCapture_State{} +func (x *RsvpEroSubobject_HopType) Reset() { + *x = RsvpEroSubobject_HopType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[831] + mi := &file_otg_proto_msgTypes[825] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortCapture_State) String() string { +func (x *RsvpEroSubobject_HopType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture_State) ProtoMessage() {} +func (*RsvpEroSubobject_HopType) ProtoMessage() {} -func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[831] +func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[825] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82426,34 +83124,34 @@ func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. -func (*StatePortCapture_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211, 0} +// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 1} } -type StateTrafficFlowTransmit_State struct { +type FlowTxRx_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTrafficFlowTransmit_State) Reset() { - *x = StateTrafficFlowTransmit_State{} +func (x *FlowTxRx_Choice) Reset() { + *x = FlowTxRx_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[832] + mi := &file_otg_proto_msgTypes[826] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTrafficFlowTransmit_State) String() string { +func (x *FlowTxRx_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit_State) ProtoMessage() {} +func (*FlowTxRx_Choice) ProtoMessage() {} -func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[832] +func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[826] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82464,34 +83162,34 @@ func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212, 0} +// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. +func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159, 0} } -type StateProtocolAll_State struct { +type FlowRouter_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolAll_State) Reset() { - *x = StateProtocolAll_State{} +func (x *FlowRouter_Mode) Reset() { + *x = FlowRouter_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[833] + mi := &file_otg_proto_msgTypes[827] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolAll_State) String() string { +func (x *FlowRouter_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll_State) ProtoMessage() {} +func (*FlowRouter_Mode) ProtoMessage() {} -func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[833] +func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[827] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82502,34 +83200,34 @@ func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. -func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213, 0} +// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. +func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161, 0} } -type StateProtocolRoute_State struct { +type FlowHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolRoute_State) Reset() { - *x = StateProtocolRoute_State{} +func (x *FlowHeader_Choice) Reset() { + *x = FlowHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[834] + mi := &file_otg_proto_msgTypes[828] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolRoute_State) String() string { +func (x *FlowHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute_State) ProtoMessage() {} +func (*FlowHeader_Choice) ProtoMessage() {} -func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[834] +func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[828] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82540,34 +83238,34 @@ func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214, 0} +// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. +func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162, 0} } -type StateProtocolLacp_Choice struct { +type FlowIpv4Priority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacp_Choice) Reset() { - *x = StateProtocolLacp_Choice{} +func (x *FlowIpv4Priority_Choice) Reset() { + *x = FlowIpv4Priority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[835] + mi := &file_otg_proto_msgTypes[829] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacp_Choice) String() string { +func (x *FlowIpv4Priority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp_Choice) ProtoMessage() {} +func (*FlowIpv4Priority_Choice) ProtoMessage() {} -func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[835] +func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[829] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82578,34 +83276,34 @@ func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0} +// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169, 0} } -type StateProtocolLacpAdmin_State struct { +type FlowIcmp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpAdmin_State) Reset() { - *x = StateProtocolLacpAdmin_State{} +func (x *FlowIcmp_Choice) Reset() { + *x = FlowIcmp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[836] + mi := &file_otg_proto_msgTypes[830] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpAdmin_State) String() string { +func (x *FlowIcmp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin_State) ProtoMessage() {} +func (*FlowIcmp_Choice) ProtoMessage() {} -func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[836] +func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[830] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82616,34 +83314,34 @@ func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216, 0} +// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{182, 0} } -type ControlAction_Choice struct { +type FlowIcmpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlAction_Choice) Reset() { - *x = ControlAction_Choice{} +func (x *FlowIcmpv6_Choice) Reset() { + *x = FlowIcmpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[837] + mi := &file_otg_proto_msgTypes[831] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlAction_Choice) String() string { +func (x *FlowIcmpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction_Choice) ProtoMessage() {} +func (*FlowIcmpv6_Choice) ProtoMessage() {} -func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[837] +func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[831] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82654,34 +83352,34 @@ func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. -func (*ControlAction_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217, 0} +// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{184, 0} } -type ActionResponse_Choice struct { +type FlowSize_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponse_Choice) Reset() { - *x = ActionResponse_Choice{} +func (x *FlowSize_Choice) Reset() { + *x = FlowSize_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[838] + mi := &file_otg_proto_msgTypes[832] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponse_Choice) String() string { +func (x *FlowSize_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse_Choice) ProtoMessage() {} +func (*FlowSize_Choice) ProtoMessage() {} -func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[838] +func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[832] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82692,34 +83390,34 @@ func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0} +// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. +func (*FlowSize_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{189, 0} } -type ActionProtocol_Choice struct { +type FlowSizeWeightPairs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocol_Choice) Reset() { - *x = ActionProtocol_Choice{} +func (x *FlowSizeWeightPairs_Choice) Reset() { + *x = FlowSizeWeightPairs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[839] + mi := &file_otg_proto_msgTypes[833] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocol_Choice) String() string { +func (x *FlowSizeWeightPairs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} -func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[839] +func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[833] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82730,34 +83428,34 @@ func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0} +// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192, 0} } -type ActionResponseProtocol_Choice struct { +type FlowSizeWeightPairs_Predefined struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocol_Choice) Reset() { - *x = ActionResponseProtocol_Choice{} +func (x *FlowSizeWeightPairs_Predefined) Reset() { + *x = FlowSizeWeightPairs_Predefined{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[840] + mi := &file_otg_proto_msgTypes[834] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocol_Choice) String() string { +func (x *FlowSizeWeightPairs_Predefined) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} -func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[840] +func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[834] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82768,34 +83466,34 @@ func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0} +// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192, 1} } -type ActionProtocolIpv4_Choice struct { +type FlowRate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv4_Choice) Reset() { - *x = ActionProtocolIpv4_Choice{} +func (x *FlowRate_Choice) Reset() { + *x = FlowRate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[841] + mi := &file_otg_proto_msgTypes[835] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4_Choice) String() string { +func (x *FlowRate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowRate_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[841] +func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[835] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82806,34 +83504,34 @@ func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0} +// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. +func (*FlowRate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194, 0} } -type ActionResponseProtocolIpv4_Choice struct { +type FlowDuration_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4_Choice) Reset() { - *x = ActionResponseProtocolIpv4_Choice{} +func (x *FlowDuration_Choice) Reset() { + *x = FlowDuration_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[842] + mi := &file_otg_proto_msgTypes[836] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4_Choice) String() string { +func (x *FlowDuration_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowDuration_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[842] +func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[836] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82844,34 +83542,34 @@ func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0} +// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. +func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195, 0} } -type ActionResponseProtocolIpv4PingResponse_Result struct { +type FlowDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv4PingResponse_Result{} +func (x *FlowDelay_Choice) Reset() { + *x = FlowDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[843] + mi := &file_otg_proto_msgTypes[837] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { +func (x *FlowDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} +func (*FlowDelay_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[843] +func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[837] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82882,34 +83580,34 @@ func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0} +// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. +func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197, 0} } -type ActionProtocolIpv6_Choice struct { +type FlowDurationInterBurstGap_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv6_Choice) Reset() { - *x = ActionProtocolIpv6_Choice{} +func (x *FlowDurationInterBurstGap_Choice) Reset() { + *x = FlowDurationInterBurstGap_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[844] + mi := &file_otg_proto_msgTypes[838] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6_Choice) String() string { +func (x *FlowDurationInterBurstGap_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6_Choice) ProtoMessage() {} +func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[844] +func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[838] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82920,34 +83618,34 @@ func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0} +// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{201, 0} } -type ActionResponseProtocolIpv6_Choice struct { +type FlowLatencyMetrics_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6_Choice) Reset() { - *x = ActionResponseProtocolIpv6_Choice{} +func (x *FlowLatencyMetrics_Mode) Reset() { + *x = FlowLatencyMetrics_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[845] + mi := &file_otg_proto_msgTypes[839] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6_Choice) String() string { +func (x *FlowLatencyMetrics_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} +func (*FlowLatencyMetrics_Mode) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[845] +func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[839] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82958,34 +83656,34 @@ func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0} +// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{203, 0} } -type ActionResponseProtocolIpv6PingResponse_Result struct { +type FlowRxTxRatio_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv6PingResponse_Result{} +func (x *FlowRxTxRatio_Choice) Reset() { + *x = FlowRxTxRatio_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[846] + mi := &file_otg_proto_msgTypes[840] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { +func (x *FlowRxTxRatio_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} +func (*FlowRxTxRatio_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[846] +func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[840] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82996,34 +83694,34 @@ func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0} +// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{205, 0} } -type ActionProtocolBgp_Choice struct { +type EventRequest_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgp_Choice) Reset() { - *x = ActionProtocolBgp_Choice{} +func (x *EventRequest_Type) Reset() { + *x = EventRequest_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[847] + mi := &file_otg_proto_msgTypes[841] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgp_Choice) String() string { +func (x *EventRequest_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp_Choice) ProtoMessage() {} +func (*EventRequest_Type) ProtoMessage() {} -func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[847] +func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[841] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83034,34 +83732,34 @@ func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0} +// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. +func (*EventRequest_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{211, 0} } -type ActionProtocolBgpNotification_Choice struct { +type LldpConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgpNotification_Choice) Reset() { - *x = ActionProtocolBgpNotification_Choice{} +func (x *LldpConnection_Choice) Reset() { + *x = LldpConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[848] + mi := &file_otg_proto_msgTypes[842] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpNotification_Choice) String() string { +func (x *LldpConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} +func (*LldpConnection_Choice) ProtoMessage() {} -func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[848] +func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[842] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83072,34 +83770,34 @@ func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0} +// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. +func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{214, 0} } -type MetricsRequest_Choice struct { +type LldpChassisId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsRequest_Choice) Reset() { - *x = MetricsRequest_Choice{} +func (x *LldpChassisId_Choice) Reset() { + *x = LldpChassisId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[849] + mi := &file_otg_proto_msgTypes[843] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest_Choice) String() string { +func (x *LldpChassisId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest_Choice) ProtoMessage() {} +func (*LldpChassisId_Choice) ProtoMessage() {} -func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[849] +func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[843] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83110,34 +83808,34 @@ func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. -func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0} +// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{215, 0} } -type MetricsResponse_Choice struct { +type LldpPortId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsResponse_Choice) Reset() { - *x = MetricsResponse_Choice{} +func (x *LldpPortId_Choice) Reset() { + *x = LldpPortId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[850] + mi := &file_otg_proto_msgTypes[844] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse_Choice) String() string { +func (x *LldpPortId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse_Choice) ProtoMessage() {} +func (*LldpPortId_Choice) ProtoMessage() {} -func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[850] +func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[844] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83148,34 +83846,34 @@ func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. -func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0} +// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{216, 0} } -type PortMetricsRequest_ColumnNames struct { +type LldpChassisMacSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetricsRequest_ColumnNames) Reset() { - *x = PortMetricsRequest_ColumnNames{} +func (x *LldpChassisMacSubType_Choice) Reset() { + *x = LldpChassisMacSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[851] + mi := &file_otg_proto_msgTypes[845] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest_ColumnNames) String() string { +func (x *LldpChassisMacSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} +func (*LldpChassisMacSubType_Choice) ProtoMessage() {} -func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[851] +func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[845] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83186,34 +83884,34 @@ func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0} +// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{217, 0} } -type PortMetric_Link struct { +type LldpPortInterfaceNameSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Link) Reset() { - *x = PortMetric_Link{} +func (x *LldpPortInterfaceNameSubType_Choice) Reset() { + *x = LldpPortInterfaceNameSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[852] + mi := &file_otg_proto_msgTypes[846] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Link) String() string { +func (x *LldpPortInterfaceNameSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Link) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} -func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[852] +func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[846] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83224,34 +83922,34 @@ func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. -func (*PortMetric_Link) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0} +// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{218, 0} } -type PortMetric_Capture struct { +type LldpSystemName_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Capture) Reset() { - *x = PortMetric_Capture{} +func (x *LldpSystemName_Choice) Reset() { + *x = LldpSystemName_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[853] + mi := &file_otg_proto_msgTypes[847] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Capture) String() string { +func (x *LldpSystemName_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Capture) ProtoMessage() {} +func (*LldpSystemName_Choice) ProtoMessage() {} -func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[853] +func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[847] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83262,34 +83960,34 @@ func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. -func (*PortMetric_Capture) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 1} +// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. +func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{219, 0} } -type PortMetric_Transmit struct { +type Error_Kind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Transmit) Reset() { - *x = PortMetric_Transmit{} +func (x *Error_Kind) Reset() { + *x = Error_Kind{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[854] + mi := &file_otg_proto_msgTypes[848] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Transmit) String() string { +func (x *Error_Kind) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Transmit) ProtoMessage() {} +func (*Error_Kind) ProtoMessage() {} -func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[854] +func (x *Error_Kind) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[848] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83300,34 +83998,34 @@ func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. -func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 2} +// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. +func (*Error_Kind) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{220, 0} } -type FlowMetricsRequest_MetricNames struct { +type ConfigUpdate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricsRequest_MetricNames) Reset() { - *x = FlowMetricsRequest_MetricNames{} +func (x *ConfigUpdate_Choice) Reset() { + *x = ConfigUpdate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[855] + mi := &file_otg_proto_msgTypes[849] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest_MetricNames) String() string { +func (x *ConfigUpdate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} +func (*ConfigUpdate_Choice) ProtoMessage() {} -func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[855] +func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[849] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83338,34 +84036,34 @@ func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0} +// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. +func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{222, 0} } -type FlowTaggedMetricsFilter_MetricNames struct { +type FlowsUpdate_PropertyNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { - *x = FlowTaggedMetricsFilter_MetricNames{} +func (x *FlowsUpdate_PropertyNames) Reset() { + *x = FlowsUpdate_PropertyNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[856] + mi := &file_otg_proto_msgTypes[850] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter_MetricNames) String() string { +func (x *FlowsUpdate_PropertyNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} +func (*FlowsUpdate_PropertyNames) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[856] +func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[850] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83376,34 +84074,34 @@ func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0} +// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. +func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{223, 0} } -type FlowMetric_Transmit struct { +type ControlState_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetric_Transmit) Reset() { - *x = FlowMetric_Transmit{} +func (x *ControlState_Choice) Reset() { + *x = ControlState_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[857] + mi := &file_otg_proto_msgTypes[851] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric_Transmit) String() string { +func (x *ControlState_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric_Transmit) ProtoMessage() {} +func (*ControlState_Choice) ProtoMessage() {} -func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[857] +func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[851] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83414,34 +84112,34 @@ func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. -func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0} +// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. +func (*ControlState_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{224, 0} } -type FlowMetricTagValue_Choice struct { +type StatePort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricTagValue_Choice) Reset() { - *x = FlowMetricTagValue_Choice{} +func (x *StatePort_Choice) Reset() { + *x = StatePort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[858] + mi := &file_otg_proto_msgTypes[852] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagValue_Choice) String() string { +func (x *StatePort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagValue_Choice) ProtoMessage() {} +func (*StatePort_Choice) ProtoMessage() {} -func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[858] +func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[852] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83452,34 +84150,34 @@ func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0} +// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. +func (*StatePort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{225, 0} } -type Bgpv4MetricsRequest_ColumnNames struct { +type StateTraffic_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { - *x = Bgpv4MetricsRequest_ColumnNames{} +func (x *StateTraffic_Choice) Reset() { + *x = StateTraffic_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[859] + mi := &file_otg_proto_msgTypes[853] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest_ColumnNames) String() string { +func (x *StateTraffic_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateTraffic_Choice) ProtoMessage() {} -func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[859] +func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[853] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83490,34 +84188,34 @@ func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0} +// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. +func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{226, 0} } -type Bgpv4Metric_SessionState struct { +type StateProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_SessionState) Reset() { - *x = Bgpv4Metric_SessionState{} +func (x *StateProtocol_Choice) Reset() { + *x = StateProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[860] + mi := &file_otg_proto_msgTypes[854] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_SessionState) String() string { +func (x *StateProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_SessionState) ProtoMessage() {} +func (*StateProtocol_Choice) ProtoMessage() {} -func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[860] +func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[854] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83528,34 +84226,34 @@ func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 0} +// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{227, 0} } -type Bgpv4Metric_FsmState struct { +type StatePortLink_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_FsmState) Reset() { - *x = Bgpv4Metric_FsmState{} +func (x *StatePortLink_State) Reset() { + *x = StatePortLink_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[861] + mi := &file_otg_proto_msgTypes[855] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_FsmState) String() string { +func (x *StatePortLink_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_FsmState) ProtoMessage() {} +func (*StatePortLink_State) ProtoMessage() {} -func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[861] +func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[855] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83566,34 +84264,34 @@ func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 1} +// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. +func (*StatePortLink_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{228, 0} } -type Bgpv6MetricsRequest_ColumnNames struct { +type StatePortCapture_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { - *x = Bgpv6MetricsRequest_ColumnNames{} +func (x *StatePortCapture_State) Reset() { + *x = StatePortCapture_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[862] + mi := &file_otg_proto_msgTypes[856] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest_ColumnNames) String() string { +func (x *StatePortCapture_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StatePortCapture_State) ProtoMessage() {} -func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[862] +func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[856] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83604,34 +84302,34 @@ func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252, 0} +// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. +func (*StatePortCapture_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{229, 0} } -type Bgpv6Metric_SessionState struct { +type StateTrafficFlowTransmit_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_SessionState) Reset() { - *x = Bgpv6Metric_SessionState{} +func (x *StateTrafficFlowTransmit_State) Reset() { + *x = StateTrafficFlowTransmit_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[863] + mi := &file_otg_proto_msgTypes[857] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_SessionState) String() string { +func (x *StateTrafficFlowTransmit_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_SessionState) ProtoMessage() {} +func (*StateTrafficFlowTransmit_State) ProtoMessage() {} -func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[863] +func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[857] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83642,34 +84340,34 @@ func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 0} +// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{230, 0} } -type Bgpv6Metric_FsmState struct { +type StateProtocolAll_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_FsmState) Reset() { - *x = Bgpv6Metric_FsmState{} +func (x *StateProtocolAll_State) Reset() { + *x = StateProtocolAll_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[864] + mi := &file_otg_proto_msgTypes[858] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_FsmState) String() string { +func (x *StateProtocolAll_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_FsmState) ProtoMessage() {} +func (*StateProtocolAll_State) ProtoMessage() {} -func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[864] +func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[858] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83680,34 +84378,34 @@ func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 1} +// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. +func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{231, 0} } -type IsisMetricsRequest_ColumnNames struct { +type StateProtocolRoute_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisMetricsRequest_ColumnNames) Reset() { - *x = IsisMetricsRequest_ColumnNames{} +func (x *StateProtocolRoute_State) Reset() { + *x = StateProtocolRoute_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[865] + mi := &file_otg_proto_msgTypes[859] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolRoute_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolRoute_State) ProtoMessage() {} -func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[865] +func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[859] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83718,34 +84416,34 @@ func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0} +// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{232, 0} } -type LagMetricsRequest_ColumnNames struct { +type StateProtocolLacp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetricsRequest_ColumnNames) Reset() { - *x = LagMetricsRequest_ColumnNames{} +func (x *StateProtocolLacp_Choice) Reset() { + *x = StateProtocolLacp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[866] + mi := &file_otg_proto_msgTypes[860] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolLacp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolLacp_Choice) ProtoMessage() {} -func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[866] +func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[860] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83756,34 +84454,34 @@ func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0} +// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{233, 0} } -type LagMetric_OperStatus struct { +type StateProtocolLacpAdmin_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetric_OperStatus) Reset() { - *x = LagMetric_OperStatus{} +func (x *StateProtocolLacpAdmin_State) Reset() { + *x = StateProtocolLacpAdmin_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[867] + mi := &file_otg_proto_msgTypes[861] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric_OperStatus) String() string { +func (x *StateProtocolLacpAdmin_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric_OperStatus) ProtoMessage() {} +func (*StateProtocolLacpAdmin_State) ProtoMessage() {} -func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[867] +func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[861] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83794,34 +84492,34 @@ func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. -func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257, 0} +// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{234, 0} } -type LacpMetricsRequest_ColumnNames struct { +type ControlAction_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetricsRequest_ColumnNames) Reset() { - *x = LacpMetricsRequest_ColumnNames{} +func (x *ControlAction_Choice) Reset() { + *x = ControlAction_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[868] + mi := &file_otg_proto_msgTypes[862] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest_ColumnNames) String() string { +func (x *ControlAction_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ControlAction_Choice) ProtoMessage() {} -func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[868] +func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[862] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83832,34 +84530,34 @@ func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258, 0} +// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. +func (*ControlAction_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{235, 0} } -type LacpMetric_Activity struct { +type ActionResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Activity) Reset() { - *x = LacpMetric_Activity{} +func (x *ActionResponse_Choice) Reset() { + *x = ActionResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[869] + mi := &file_otg_proto_msgTypes[863] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Activity) String() string { +func (x *ActionResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Activity) ProtoMessage() {} +func (*ActionResponse_Choice) ProtoMessage() {} -func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[869] +func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[863] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83870,34 +84568,34 @@ func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. -func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 0} +// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{237, 0} } -type LacpMetric_Timeout struct { +type ActionProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Timeout) Reset() { - *x = LacpMetric_Timeout{} +func (x *ActionProtocol_Choice) Reset() { + *x = ActionProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[870] + mi := &file_otg_proto_msgTypes[864] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Timeout) String() string { +func (x *ActionProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Timeout) ProtoMessage() {} +func (*ActionProtocol_Choice) ProtoMessage() {} -func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[870] +func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[864] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83908,34 +84606,34 @@ func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. -func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 1} +// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{238, 0} } -type LacpMetric_Synchronization struct { +type ActionResponseProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Synchronization) Reset() { - *x = LacpMetric_Synchronization{} +func (x *ActionResponseProtocol_Choice) Reset() { + *x = ActionResponseProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[871] + mi := &file_otg_proto_msgTypes[865] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Synchronization) String() string { +func (x *ActionResponseProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Synchronization) ProtoMessage() {} +func (*ActionResponseProtocol_Choice) ProtoMessage() {} -func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[871] +func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[865] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83946,34 +84644,34 @@ func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. -func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 2} +// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{239, 0} } -type LldpMetricsRequest_ColumnNames struct { +type ActionProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpMetricsRequest_ColumnNames) Reset() { - *x = LldpMetricsRequest_ColumnNames{} +func (x *ActionProtocolIpv4_Choice) Reset() { + *x = ActionProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[872] + mi := &file_otg_proto_msgTypes[866] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest_ColumnNames) String() string { +func (x *ActionProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionProtocolIpv4_Choice) ProtoMessage() {} -func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[872] +func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[866] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83984,34 +84682,34 @@ func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0} +// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240, 0} } -type RsvpMetricsRequest_ColumnNames struct { +type ActionResponseProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpMetricsRequest_ColumnNames) Reset() { - *x = RsvpMetricsRequest_ColumnNames{} +func (x *ActionResponseProtocolIpv4_Choice) Reset() { + *x = ActionResponseProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[873] + mi := &file_otg_proto_msgTypes[867] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetricsRequest_ColumnNames) String() string { +func (x *ActionResponseProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} -func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[873] +func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[867] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84022,34 +84720,34 @@ func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0} +// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241, 0} } -type StatesRequest_Choice struct { +type ActionResponseProtocolIpv4PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesRequest_Choice) Reset() { - *x = StatesRequest_Choice{} +func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv4PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[874] + mi := &file_otg_proto_msgTypes[868] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest_Choice) String() string { +func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} -func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[874] +func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[868] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84060,34 +84758,34 @@ func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. -func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245, 0} } -type StatesResponse_Choice struct { +type ActionProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesResponse_Choice) Reset() { - *x = StatesResponse_Choice{} +func (x *ActionProtocolIpv6_Choice) Reset() { + *x = ActionProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[875] + mi := &file_otg_proto_msgTypes[869] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesResponse_Choice) String() string { +func (x *ActionProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesResponse_Choice) ProtoMessage() {} +func (*ActionProtocolIpv6_Choice) ProtoMessage() {} -func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[875] +func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[869] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84098,34 +84796,34 @@ func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. -func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0} +// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246, 0} } -type BgpPrefixStateRequest_PrefixFilters struct { +type ActionResponseProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { - *x = BgpPrefixStateRequest_PrefixFilters{} +func (x *ActionResponseProtocolIpv6_Choice) Reset() { + *x = ActionResponseProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[876] + mi := &file_otg_proto_msgTypes[870] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixStateRequest_PrefixFilters) String() string { +func (x *ActionResponseProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} +func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} -func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[876] +func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[870] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84136,34 +84834,34 @@ func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270, 0} +// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247, 0} } -type BgpPrefixIpv4UnicastFilter_Origin struct { +type ActionResponseProtocolIpv6PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv4UnicastFilter_Origin{} +func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv6PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[877] + mi := &file_otg_proto_msgTypes[871] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { +func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[877] +func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[871] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84174,34 +84872,34 @@ func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{251, 0} } -type BgpPrefixIpv6UnicastFilter_Origin struct { +type ActionProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv6UnicastFilter_Origin{} +func (x *ActionProtocolBgp_Choice) Reset() { + *x = ActionProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[878] + mi := &file_otg_proto_msgTypes[872] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { +func (x *ActionProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} +func (*ActionProtocolBgp_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[878] +func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[872] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84212,34 +84910,34 @@ func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0} +// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{252, 0} } -type BgpPrefixIpv4UnicastState_Origin struct { +type ActionProtocolBgpNotification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { - *x = BgpPrefixIpv4UnicastState_Origin{} +func (x *ActionProtocolBgpNotification_Choice) Reset() { + *x = ActionProtocolBgpNotification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[879] + mi := &file_otg_proto_msgTypes[873] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastState_Origin) String() string { +func (x *ActionProtocolBgpNotification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} +func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[879] +func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[873] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84250,34 +84948,34 @@ func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0} +// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{253, 0} } -type BgpPrefixIpv6UnicastState_Origin struct { +type MetricsRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { - *x = BgpPrefixIpv6UnicastState_Origin{} +func (x *MetricsRequest_Choice) Reset() { + *x = MetricsRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[880] + mi := &file_otg_proto_msgTypes[874] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastState_Origin) String() string { +func (x *MetricsRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} +func (*MetricsRequest_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[880] +func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[874] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84288,34 +84986,34 @@ func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0} +// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. +func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{255, 0} } -type ResultBgpCommunity_Type struct { +type MetricsResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpCommunity_Type) Reset() { - *x = ResultBgpCommunity_Type{} +func (x *MetricsResponse_Choice) Reset() { + *x = MetricsResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[881] + mi := &file_otg_proto_msgTypes[875] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpCommunity_Type) String() string { +func (x *MetricsResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity_Type) ProtoMessage() {} +func (*MetricsResponse_Choice) ProtoMessage() {} -func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[881] +func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[875] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84326,34 +85024,34 @@ func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276, 0} +// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. +func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{256, 0} } -type ResultBgpAsPathSegment_Type struct { +type PortMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpAsPathSegment_Type) Reset() { - *x = ResultBgpAsPathSegment_Type{} +func (x *PortMetricsRequest_ColumnNames) Reset() { + *x = PortMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[882] + mi := &file_otg_proto_msgTypes[876] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpAsPathSegment_Type) String() string { +func (x *PortMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} +func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[882] +func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[876] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84364,34 +85062,34 @@ func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0} +// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257, 0} } -type IsisLspState_PduType struct { +type PortMetric_Link struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspState_PduType) Reset() { - *x = IsisLspState_PduType{} +func (x *PortMetric_Link) Reset() { + *x = PortMetric_Link{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[883] + mi := &file_otg_proto_msgTypes[877] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspState_PduType) String() string { +func (x *PortMetric_Link) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspState_PduType) ProtoMessage() {} +func (*PortMetric_Link) ProtoMessage() {} -func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[883] +func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[877] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84402,34 +85100,34 @@ func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. -func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0} +// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. +func (*PortMetric_Link) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 0} } -type IsisLspV4Prefix_RedistributionType struct { +type PortMetric_Capture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_RedistributionType) Reset() { - *x = IsisLspV4Prefix_RedistributionType{} +func (x *PortMetric_Capture) Reset() { + *x = PortMetric_Capture{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[884] + mi := &file_otg_proto_msgTypes[878] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_RedistributionType) String() string { +func (x *PortMetric_Capture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} +func (*PortMetric_Capture) ProtoMessage() {} -func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[884] +func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[878] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84440,34 +85138,34 @@ func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 0} +// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. +func (*PortMetric_Capture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 1} } -type IsisLspV4Prefix_OriginType struct { +type PortMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_OriginType) Reset() { - *x = IsisLspV4Prefix_OriginType{} +func (x *PortMetric_Transmit) Reset() { + *x = PortMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[885] + mi := &file_otg_proto_msgTypes[879] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_OriginType) String() string { +func (x *PortMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} +func (*PortMetric_Transmit) ProtoMessage() {} -func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[885] +func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[879] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84478,34 +85176,34 @@ func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 1} +// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. +func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 2} } -type IsisLspExtendedV4Prefix_RedistributionType struct { +type FlowMetricsRequest_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { - *x = IsisLspExtendedV4Prefix_RedistributionType{} +func (x *FlowMetricsRequest_MetricNames) Reset() { + *x = FlowMetricsRequest_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[886] + mi := &file_otg_proto_msgTypes[880] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { +func (x *FlowMetricsRequest_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} +func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[886] +func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[880] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84516,34 +85214,34 @@ func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0} +// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{259, 0} } -type IsisLspV6Prefix_RedistributionType struct { +type FlowTaggedMetricsFilter_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_RedistributionType) Reset() { - *x = IsisLspV6Prefix_RedistributionType{} +func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { + *x = FlowTaggedMetricsFilter_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[887] + mi := &file_otg_proto_msgTypes[881] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_RedistributionType) String() string { +func (x *FlowTaggedMetricsFilter_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} +func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} -func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[887] +func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[881] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84554,34 +85252,34 @@ func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0} +// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{260, 0} } -type IsisLspV6Prefix_OriginType struct { +type FlowMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_OriginType) Reset() { - *x = IsisLspV6Prefix_OriginType{} +func (x *FlowMetric_Transmit) Reset() { + *x = FlowMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[888] + mi := &file_otg_proto_msgTypes[882] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_OriginType) String() string { +func (x *FlowMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} +func (*FlowMetric_Transmit) ProtoMessage() {} -func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[888] +func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[882] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84592,34 +85290,34 @@ func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 1} +// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. +func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262, 0} } -type LldpNeighborsState_ChassisIdType struct { +type FlowMetricTagValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_ChassisIdType) Reset() { - *x = LldpNeighborsState_ChassisIdType{} +func (x *FlowMetricTagValue_Choice) Reset() { + *x = FlowMetricTagValue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[889] + mi := &file_otg_proto_msgTypes[883] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_ChassisIdType) String() string { +func (x *FlowMetricTagValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} +func (*FlowMetricTagValue_Choice) ProtoMessage() {} -func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[889] +func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[883] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84630,34 +85328,34 @@ func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0} +// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{265, 0} } -type LldpNeighborsState_PortIdType struct { +type Bgpv4MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_PortIdType) Reset() { - *x = LldpNeighborsState_PortIdType{} +func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { + *x = Bgpv4MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[890] + mi := &file_otg_proto_msgTypes[884] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_PortIdType) String() string { +func (x *Bgpv4MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_PortIdType) ProtoMessage() {} +func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[890] +func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[884] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84668,34 +85366,34 @@ func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 1} +// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{268, 0} } -type LldpCapabilityState_CapabilityName struct { +type Bgpv4Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpCapabilityState_CapabilityName) Reset() { - *x = LldpCapabilityState_CapabilityName{} +func (x *Bgpv4Metric_SessionState) Reset() { + *x = Bgpv4Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[891] + mi := &file_otg_proto_msgTypes[885] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpCapabilityState_CapabilityName) String() string { +func (x *Bgpv4Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} +func (*Bgpv4Metric_SessionState) ProtoMessage() {} -func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[891] +func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[885] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84706,34 +85404,34 @@ func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0} +// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269, 0} } -type RsvpLspState_SessionStatus struct { +type Bgpv4Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_SessionStatus) Reset() { - *x = RsvpLspState_SessionStatus{} +func (x *Bgpv4Metric_FsmState) Reset() { + *x = Bgpv4Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[892] + mi := &file_otg_proto_msgTypes[886] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_SessionStatus) String() string { +func (x *Bgpv4Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_SessionStatus) ProtoMessage() {} +func (*Bgpv4Metric_FsmState) ProtoMessage() {} -func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[892] +func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[886] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84744,34 +85442,34 @@ func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. -func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0} +// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269, 1} } -type RsvpLspState_LastFlapReason struct { +type Bgpv6MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_LastFlapReason) Reset() { - *x = RsvpLspState_LastFlapReason{} +func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { + *x = Bgpv6MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[893] + mi := &file_otg_proto_msgTypes[887] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_LastFlapReason) String() string { +func (x *Bgpv6MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_LastFlapReason) ProtoMessage() {} +func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[893] +func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[887] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84782,34 +85480,34 @@ func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. -func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 1} +// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{270, 0} } -type RsvpLspIpv4Ero_Type struct { +type Bgpv6Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4Ero_Type) Reset() { - *x = RsvpLspIpv4Ero_Type{} +func (x *Bgpv6Metric_SessionState) Reset() { + *x = Bgpv6Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[894] + mi := &file_otg_proto_msgTypes[888] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Ero_Type) String() string { +func (x *Bgpv6Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} +func (*Bgpv6Metric_SessionState) ProtoMessage() {} -func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[894] +func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[888] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84820,34 +85518,34 @@ func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0} +// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271, 0} } -type PatternFlowEthernetDst_Choice struct { +type Bgpv6Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetDst_Choice) Reset() { - *x = PatternFlowEthernetDst_Choice{} +func (x *Bgpv6Metric_FsmState) Reset() { + *x = Bgpv6Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[895] + mi := &file_otg_proto_msgTypes[889] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDst_Choice) String() string { +func (x *Bgpv6Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} +func (*Bgpv6Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[895] +func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[889] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84858,34 +85556,34 @@ func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0} +// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271, 1} } -type PatternFlowEthernetSrc_Choice struct { +type IsisMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetSrc_Choice) Reset() { - *x = PatternFlowEthernetSrc_Choice{} +func (x *IsisMetricsRequest_ColumnNames) Reset() { + *x = IsisMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[896] + mi := &file_otg_proto_msgTypes[890] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrc_Choice) String() string { +func (x *IsisMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} +func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[896] +func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[890] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84896,34 +85594,34 @@ func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0} +// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{272, 0} } -type PatternFlowEthernetEtherType_Choice struct { +type LagMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetEtherType_Choice) Reset() { - *x = PatternFlowEthernetEtherType_Choice{} +func (x *LagMetricsRequest_ColumnNames) Reset() { + *x = LagMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[897] + mi := &file_otg_proto_msgTypes[891] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherType_Choice) String() string { +func (x *LagMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} +func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[897] +func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[891] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84934,34 +85632,34 @@ func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315, 0} -} - -type PatternFlowEthernetPfcQueue_Choice struct { +// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274, 0} +} + +type LagMetric_OperStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { - *x = PatternFlowEthernetPfcQueue_Choice{} +func (x *LagMetric_OperStatus) Reset() { + *x = LagMetric_OperStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[898] + mi := &file_otg_proto_msgTypes[892] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueue_Choice) String() string { +func (x *LagMetric_OperStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} +func (*LagMetric_OperStatus) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[898] +func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[892] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84972,34 +85670,34 @@ func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318, 0} +// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. +func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{275, 0} } -type PatternFlowVlanPriority_Choice struct { +type LacpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanPriority_Choice) Reset() { - *x = PatternFlowVlanPriority_Choice{} +func (x *LacpMetricsRequest_ColumnNames) Reset() { + *x = LacpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[899] + mi := &file_otg_proto_msgTypes[893] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriority_Choice) String() string { +func (x *LacpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} +func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[899] +func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[893] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85010,34 +85708,34 @@ func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0} +// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{276, 0} } -type PatternFlowVlanCfi_Choice struct { +type LacpMetric_Activity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanCfi_Choice) Reset() { - *x = PatternFlowVlanCfi_Choice{} +func (x *LacpMetric_Activity) Reset() { + *x = LacpMetric_Activity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[900] + mi := &file_otg_proto_msgTypes[894] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfi_Choice) String() string { +func (x *LacpMetric_Activity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} +func (*LacpMetric_Activity) ProtoMessage() {} -func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[900] +func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[894] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85048,34 +85746,34 @@ func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0} +// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. +func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 0} } -type PatternFlowVlanId_Choice struct { +type LacpMetric_Timeout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanId_Choice) Reset() { - *x = PatternFlowVlanId_Choice{} +func (x *LacpMetric_Timeout) Reset() { + *x = LacpMetric_Timeout{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[901] + mi := &file_otg_proto_msgTypes[895] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanId_Choice) String() string { +func (x *LacpMetric_Timeout) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId_Choice) ProtoMessage() {} +func (*LacpMetric_Timeout) ProtoMessage() {} -func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[901] +func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[895] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85086,34 +85784,34 @@ func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327, 0} +// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. +func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 1} } -type PatternFlowVlanTpid_Choice struct { +type LacpMetric_Synchronization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanTpid_Choice) Reset() { - *x = PatternFlowVlanTpid_Choice{} +func (x *LacpMetric_Synchronization) Reset() { + *x = LacpMetric_Synchronization{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[902] + mi := &file_otg_proto_msgTypes[896] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpid_Choice) String() string { +func (x *LacpMetric_Synchronization) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} +func (*LacpMetric_Synchronization) ProtoMessage() {} -func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[902] +func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[896] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85124,34 +85822,34 @@ func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0} +// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. +func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 2} } -type PatternFlowVxlanFlags_Choice struct { +type LldpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanFlags_Choice) Reset() { - *x = PatternFlowVxlanFlags_Choice{} +func (x *LldpMetricsRequest_ColumnNames) Reset() { + *x = LldpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[903] + mi := &file_otg_proto_msgTypes[897] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlags_Choice) String() string { +func (x *LldpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} +func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[903] +func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[897] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85162,34 +85860,34 @@ func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333, 0} +// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{278, 0} } -type PatternFlowVxlanReserved0_Choice struct { +type RsvpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved0_Choice) Reset() { - *x = PatternFlowVxlanReserved0_Choice{} +func (x *RsvpMetricsRequest_ColumnNames) Reset() { + *x = RsvpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[904] + mi := &file_otg_proto_msgTypes[898] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0_Choice) String() string { +func (x *RsvpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} +func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[904] +func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[898] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85200,34 +85898,34 @@ func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0} +// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{280, 0} } -type PatternFlowVxlanVni_Choice struct { +type StatesRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanVni_Choice) Reset() { - *x = PatternFlowVxlanVni_Choice{} +func (x *StatesRequest_Choice) Reset() { + *x = StatesRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[905] + mi := &file_otg_proto_msgTypes[899] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVni_Choice) String() string { +func (x *StatesRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} +func (*StatesRequest_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[905] +func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[899] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85238,34 +85936,34 @@ func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0} +// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. +func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{282, 0} } -type PatternFlowVxlanReserved1_Choice struct { +type StatesResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved1_Choice) Reset() { - *x = PatternFlowVxlanReserved1_Choice{} +func (x *StatesResponse_Choice) Reset() { + *x = StatesResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[906] + mi := &file_otg_proto_msgTypes[900] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1_Choice) String() string { +func (x *StatesResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} +func (*StatesResponse_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[906] +func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[900] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85276,34 +85974,34 @@ func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0} +// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. +func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283, 0} } -type PatternFlowIpv4Version_Choice struct { +type BgpPrefixStateRequest_PrefixFilters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Version_Choice) Reset() { - *x = PatternFlowIpv4Version_Choice{} +func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { + *x = BgpPrefixStateRequest_PrefixFilters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[907] + mi := &file_otg_proto_msgTypes[901] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Version_Choice) String() string { +func (x *BgpPrefixStateRequest_PrefixFilters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} +func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} -func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[907] +func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[901] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85314,34 +86012,34 @@ func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0} +// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{288, 0} } -type PatternFlowIpv4HeaderLength_Choice struct { +type BgpPrefixIpv4UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { - *x = PatternFlowIpv4HeaderLength_Choice{} +func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv4UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[908] + mi := &file_otg_proto_msgTypes[902] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLength_Choice) String() string { +func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[908] +func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[902] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85352,34 +86050,34 @@ func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0} +// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{289, 0} } -type PatternFlowIpv4TotalLength_Choice struct { +type BgpPrefixIpv6UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TotalLength_Choice) Reset() { - *x = PatternFlowIpv4TotalLength_Choice{} +func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv6UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[909] + mi := &file_otg_proto_msgTypes[903] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLength_Choice) String() string { +func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[909] +func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[903] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85390,34 +86088,34 @@ func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0} +// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{290, 0} } -type PatternFlowIpv4Identification_Choice struct { +type BgpPrefixIpv4UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Identification_Choice) Reset() { - *x = PatternFlowIpv4Identification_Choice{} +func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { + *x = BgpPrefixIpv4UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[910] + mi := &file_otg_proto_msgTypes[904] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Identification_Choice) String() string { +func (x *BgpPrefixIpv4UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[910] +func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[904] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85428,34 +86126,34 @@ func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0} +// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292, 0} } -type PatternFlowIpv4Reserved_Choice struct { +type BgpPrefixIpv6UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Reserved_Choice) Reset() { - *x = PatternFlowIpv4Reserved_Choice{} +func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { + *x = BgpPrefixIpv6UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[911] + mi := &file_otg_proto_msgTypes[905] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Reserved_Choice) String() string { +func (x *BgpPrefixIpv6UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[911] +func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[905] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85466,34 +86164,34 @@ func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0} +// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293, 0} } -type PatternFlowIpv4DontFragment_Choice struct { +type ResultBgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DontFragment_Choice) Reset() { - *x = PatternFlowIpv4DontFragment_Choice{} +func (x *ResultBgpCommunity_Type) Reset() { + *x = ResultBgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[912] + mi := &file_otg_proto_msgTypes[906] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragment_Choice) String() string { +func (x *ResultBgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} +func (*ResultBgpCommunity_Type) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[912] +func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[906] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85504,34 +86202,34 @@ func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0} +// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{294, 0} } -type PatternFlowIpv4MoreFragments_Choice struct { +type ResultBgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { - *x = PatternFlowIpv4MoreFragments_Choice{} +func (x *ResultBgpAsPathSegment_Type) Reset() { + *x = ResultBgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[913] + mi := &file_otg_proto_msgTypes[907] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragments_Choice) String() string { +func (x *ResultBgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} +func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[913] +func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[907] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85542,34 +86240,34 @@ func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0} +// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{296, 0} } -type PatternFlowIpv4FragmentOffset_Choice struct { +type IsisLspState_PduType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { - *x = PatternFlowIpv4FragmentOffset_Choice{} +func (x *IsisLspState_PduType) Reset() { + *x = IsisLspState_PduType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[914] + mi := &file_otg_proto_msgTypes[908] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { +func (x *IsisLspState_PduType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} +func (*IsisLspState_PduType) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[914] +func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[908] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85580,34 +86278,34 @@ func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0} +// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. +func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{299, 0} } -type PatternFlowIpv4TimeToLive_Choice struct { +type IsisLspV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { - *x = PatternFlowIpv4TimeToLive_Choice{} +func (x *IsisLspV4Prefix_RedistributionType) Reset() { + *x = IsisLspV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[915] + mi := &file_otg_proto_msgTypes[909] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLive_Choice) String() string { +func (x *IsisLspV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[915] +func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[909] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85618,34 +86316,34 @@ func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0} +// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 0} } -type PatternFlowIpv4Protocol_Choice struct { +type IsisLspV4Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Protocol_Choice) Reset() { - *x = PatternFlowIpv4Protocol_Choice{} +func (x *IsisLspV4Prefix_OriginType) Reset() { + *x = IsisLspV4Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[916] + mi := &file_otg_proto_msgTypes[910] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Protocol_Choice) String() string { +func (x *IsisLspV4Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[916] +func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[910] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85656,34 +86354,34 @@ func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0} +// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 1} } -type PatternFlowIpv4HeaderChecksum_Choice struct { +type IsisLspExtendedV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Choice{} +func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { + *x = IsisLspExtendedV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[917] + mi := &file_otg_proto_msgTypes[911] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { +func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[917] +func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[911] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85694,34 +86392,34 @@ func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 0} +// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{310, 0} } -type PatternFlowIpv4HeaderChecksum_Generated struct { +type IsisLspV6Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Generated{} +func (x *IsisLspV6Prefix_RedistributionType) Reset() { + *x = IsisLspV6Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[918] + mi := &file_otg_proto_msgTypes[912] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { +func (x *IsisLspV6Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} +func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[918] +func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[912] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85732,34 +86430,34 @@ func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 1} +// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312, 0} } -type PatternFlowIpv4Src_Choice struct { +type IsisLspV6Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Src_Choice) Reset() { - *x = PatternFlowIpv4Src_Choice{} +func (x *IsisLspV6Prefix_OriginType) Reset() { + *x = IsisLspV6Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[919] + mi := &file_otg_proto_msgTypes[913] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src_Choice) String() string { +func (x *IsisLspV6Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} +func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[919] +func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[913] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85770,34 +86468,34 @@ func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376, 0} +// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312, 1} } -type PatternFlowIpv4Dst_Choice struct { +type LldpNeighborsState_ChassisIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Dst_Choice) Reset() { - *x = PatternFlowIpv4Dst_Choice{} +func (x *LldpNeighborsState_ChassisIdType) Reset() { + *x = LldpNeighborsState_ChassisIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[920] + mi := &file_otg_proto_msgTypes[914] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst_Choice) String() string { +func (x *LldpNeighborsState_ChassisIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} +func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} -func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[920] +func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[914] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85808,34 +86506,34 @@ func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379, 0} +// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315, 0} } -type PatternFlowIpv4PriorityRaw_Choice struct { +type LldpNeighborsState_PortIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { - *x = PatternFlowIpv4PriorityRaw_Choice{} +func (x *LldpNeighborsState_PortIdType) Reset() { + *x = LldpNeighborsState_PortIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[921] + mi := &file_otg_proto_msgTypes[915] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { +func (x *LldpNeighborsState_PortIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} +func (*LldpNeighborsState_PortIdType) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[921] +func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[915] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85846,34 +86544,34 @@ func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382, 0} +// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315, 1} } -type PatternFlowIpv4DscpPhb_Choice struct { +type LldpCapabilityState_CapabilityName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { - *x = PatternFlowIpv4DscpPhb_Choice{} +func (x *LldpCapabilityState_CapabilityName) Reset() { + *x = LldpCapabilityState_CapabilityName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[922] + mi := &file_otg_proto_msgTypes[916] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb_Choice) String() string { +func (x *LldpCapabilityState_CapabilityName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} +func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[922] +func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[916] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85884,34 +86582,34 @@ func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385, 0} +// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{317, 0} } -type PatternFlowIpv4DscpEcn_Choice struct { +type RsvpLspState_SessionStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { - *x = PatternFlowIpv4DscpEcn_Choice{} +func (x *RsvpLspState_SessionStatus) Reset() { + *x = RsvpLspState_SessionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[923] + mi := &file_otg_proto_msgTypes[917] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn_Choice) String() string { +func (x *RsvpLspState_SessionStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} +func (*RsvpLspState_SessionStatus) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[923] +func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[917] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85922,34 +86620,34 @@ func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388, 0} +// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. +func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{321, 0} } -type PatternFlowIpv4TosPrecedence_Choice struct { +type RsvpLspState_LastFlapReason struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { - *x = PatternFlowIpv4TosPrecedence_Choice{} +func (x *RsvpLspState_LastFlapReason) Reset() { + *x = RsvpLspState_LastFlapReason{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[924] + mi := &file_otg_proto_msgTypes[918] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { +func (x *RsvpLspState_LastFlapReason) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} +func (*RsvpLspState_LastFlapReason) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[924] +func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[918] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85960,34 +86658,34 @@ func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391, 0} +// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. +func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{321, 1} } -type PatternFlowIpv4TosDelay_Choice struct { +type RsvpLspIpv4Ero_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosDelay_Choice) Reset() { - *x = PatternFlowIpv4TosDelay_Choice{} +func (x *RsvpLspIpv4Ero_Type) Reset() { + *x = RsvpLspIpv4Ero_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[925] + mi := &file_otg_proto_msgTypes[919] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelay_Choice) String() string { +func (x *RsvpLspIpv4Ero_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} +func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[925] +func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[919] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85998,34 +86696,34 @@ func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394, 0} +// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{323, 0} } -type PatternFlowIpv4TosThroughput_Choice struct { +type PatternFlowEthernetDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { - *x = PatternFlowIpv4TosThroughput_Choice{} +func (x *PatternFlowEthernetDst_Choice) Reset() { + *x = PatternFlowEthernetDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[926] + mi := &file_otg_proto_msgTypes[920] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughput_Choice) String() string { +func (x *PatternFlowEthernetDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} +func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[926] +func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[920] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86036,34 +86734,34 @@ func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397, 0} +// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327, 0} } -type PatternFlowIpv4TosReliability_Choice struct { +type PatternFlowEthernetSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosReliability_Choice) Reset() { - *x = PatternFlowIpv4TosReliability_Choice{} +func (x *PatternFlowEthernetSrc_Choice) Reset() { + *x = PatternFlowEthernetSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[927] + mi := &file_otg_proto_msgTypes[921] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliability_Choice) String() string { +func (x *PatternFlowEthernetSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} +func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[927] +func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[921] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86074,34 +86772,34 @@ func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0} +// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{330, 0} } -type PatternFlowIpv4TosMonetary_Choice struct { +type PatternFlowEthernetEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { - *x = PatternFlowIpv4TosMonetary_Choice{} +func (x *PatternFlowEthernetEtherType_Choice) Reset() { + *x = PatternFlowEthernetEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[928] + mi := &file_otg_proto_msgTypes[922] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetary_Choice) String() string { +func (x *PatternFlowEthernetEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} +func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[928] +func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[922] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86112,34 +86810,34 @@ func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0} +// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{333, 0} } -type PatternFlowIpv4TosUnused_Choice struct { +type PatternFlowEthernetPfcQueue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosUnused_Choice) Reset() { - *x = PatternFlowIpv4TosUnused_Choice{} +func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { + *x = PatternFlowEthernetPfcQueue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[929] + mi := &file_otg_proto_msgTypes[923] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnused_Choice) String() string { +func (x *PatternFlowEthernetPfcQueue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[929] +func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[923] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86150,34 +86848,34 @@ func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0} +// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{336, 0} } -type PatternFlowIpv6Version_Choice struct { +type PatternFlowVlanPriority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Version_Choice) Reset() { - *x = PatternFlowIpv6Version_Choice{} +func (x *PatternFlowVlanPriority_Choice) Reset() { + *x = PatternFlowVlanPriority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[930] + mi := &file_otg_proto_msgTypes[924] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Version_Choice) String() string { +func (x *PatternFlowVlanPriority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} +func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[930] +func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[924] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86188,34 +86886,34 @@ func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409, 0} +// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{339, 0} } -type PatternFlowIpv6TrafficClass_Choice struct { +type PatternFlowVlanCfi_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { - *x = PatternFlowIpv6TrafficClass_Choice{} +func (x *PatternFlowVlanCfi_Choice) Reset() { + *x = PatternFlowVlanCfi_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[931] + mi := &file_otg_proto_msgTypes[925] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClass_Choice) String() string { +func (x *PatternFlowVlanCfi_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[931] +func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[925] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86226,34 +86924,34 @@ func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0} +// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{342, 0} } -type PatternFlowIpv6FlowLabel_Choice struct { +type PatternFlowVlanId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { - *x = PatternFlowIpv6FlowLabel_Choice{} +func (x *PatternFlowVlanId_Choice) Reset() { + *x = PatternFlowVlanId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[932] + mi := &file_otg_proto_msgTypes[926] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabel_Choice) String() string { +func (x *PatternFlowVlanId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} +func (*PatternFlowVlanId_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[932] +func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[926] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86264,34 +86962,34 @@ func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0} +// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{345, 0} } -type PatternFlowIpv6PayloadLength_Choice struct { +type PatternFlowVlanTpid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { - *x = PatternFlowIpv6PayloadLength_Choice{} +func (x *PatternFlowVlanTpid_Choice) Reset() { + *x = PatternFlowVlanTpid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[933] + mi := &file_otg_proto_msgTypes[927] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLength_Choice) String() string { +func (x *PatternFlowVlanTpid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} +func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[933] +func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[927] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86302,34 +87000,34 @@ func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0} +// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{348, 0} } -type PatternFlowIpv6NextHeader_Choice struct { +type PatternFlowVxlanFlags_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6NextHeader_Choice) Reset() { - *x = PatternFlowIpv6NextHeader_Choice{} +func (x *PatternFlowVxlanFlags_Choice) Reset() { + *x = PatternFlowVxlanFlags_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[934] + mi := &file_otg_proto_msgTypes[928] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeader_Choice) String() string { +func (x *PatternFlowVxlanFlags_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} +func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[934] +func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[928] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86340,34 +87038,34 @@ func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0} +// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{351, 0} } -type PatternFlowIpv6HopLimit_Choice struct { +type PatternFlowVxlanReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6HopLimit_Choice) Reset() { - *x = PatternFlowIpv6HopLimit_Choice{} +func (x *PatternFlowVxlanReserved0_Choice) Reset() { + *x = PatternFlowVxlanReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[935] + mi := &file_otg_proto_msgTypes[929] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimit_Choice) String() string { +func (x *PatternFlowVxlanReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[935] +func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[929] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86378,34 +87076,34 @@ func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0} +// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{354, 0} } -type PatternFlowIpv6Src_Choice struct { +type PatternFlowVxlanVni_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Src_Choice) Reset() { - *x = PatternFlowIpv6Src_Choice{} +func (x *PatternFlowVxlanVni_Choice) Reset() { + *x = PatternFlowVxlanVni_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[936] + mi := &file_otg_proto_msgTypes[930] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Src_Choice) String() string { +func (x *PatternFlowVxlanVni_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} +func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[936] +func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[930] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86416,34 +87114,34 @@ func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0} +// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{357, 0} } -type PatternFlowIpv6Dst_Choice struct { +type PatternFlowVxlanReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Dst_Choice) Reset() { - *x = PatternFlowIpv6Dst_Choice{} +func (x *PatternFlowVxlanReserved1_Choice) Reset() { + *x = PatternFlowVxlanReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[937] + mi := &file_otg_proto_msgTypes[931] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Dst_Choice) String() string { +func (x *PatternFlowVxlanReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[937] +func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[931] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86454,34 +87152,34 @@ func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0} +// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{360, 0} } -type PatternFlowPfcPauseDst_Choice struct { +type PatternFlowIpv4Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseDst_Choice) Reset() { - *x = PatternFlowPfcPauseDst_Choice{} +func (x *PatternFlowIpv4Version_Choice) Reset() { + *x = PatternFlowIpv4Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[938] + mi := &file_otg_proto_msgTypes[932] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[938] +func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[932] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86492,34 +87190,34 @@ func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0} +// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{363, 0} } -type PatternFlowPfcPauseSrc_Choice struct { +type PatternFlowIpv4HeaderLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseSrc_Choice) Reset() { - *x = PatternFlowPfcPauseSrc_Choice{} +func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { + *x = PatternFlowIpv4HeaderLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[939] + mi := &file_otg_proto_msgTypes[933] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4HeaderLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[939] +func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[933] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86530,34 +87228,34 @@ func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0} +// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{366, 0} } -type PatternFlowPfcPauseEtherType_Choice struct { +type PatternFlowIpv4TotalLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { - *x = PatternFlowPfcPauseEtherType_Choice{} +func (x *PatternFlowIpv4TotalLength_Choice) Reset() { + *x = PatternFlowIpv4TotalLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[940] + mi := &file_otg_proto_msgTypes[934] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4TotalLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[940] +func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[934] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86568,34 +87266,34 @@ func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0} +// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{369, 0} } -type PatternFlowPfcPauseControlOpCode_Choice struct { +type PatternFlowIpv4Identification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { - *x = PatternFlowPfcPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4Identification_Choice) Reset() { + *x = PatternFlowIpv4Identification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[941] + mi := &file_otg_proto_msgTypes[935] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4Identification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[941] +func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[935] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86606,34 +87304,34 @@ func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0} +// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{372, 0} } -type PatternFlowPfcPauseClassEnableVector_Choice struct { +type PatternFlowIpv4Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { - *x = PatternFlowPfcPauseClassEnableVector_Choice{} +func (x *PatternFlowIpv4Reserved_Choice) Reset() { + *x = PatternFlowIpv4Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[942] + mi := &file_otg_proto_msgTypes[936] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { +func (x *PatternFlowIpv4Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[942] +func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[936] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86644,34 +87342,34 @@ func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0} +// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375, 0} } -type PatternFlowPfcPausePauseClass0_Choice struct { +type PatternFlowIpv4DontFragment_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass0_Choice{} +func (x *PatternFlowIpv4DontFragment_Choice) Reset() { + *x = PatternFlowIpv4DontFragment_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[943] + mi := &file_otg_proto_msgTypes[937] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { +func (x *PatternFlowIpv4DontFragment_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[943] +func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[937] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86682,34 +87380,34 @@ func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0} +// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378, 0} } -type PatternFlowPfcPausePauseClass1_Choice struct { +type PatternFlowIpv4MoreFragments_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass1_Choice{} +func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { + *x = PatternFlowIpv4MoreFragments_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[944] + mi := &file_otg_proto_msgTypes[938] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { +func (x *PatternFlowIpv4MoreFragments_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[944] +func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[938] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86720,35 +87418,35 @@ func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0} +// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381, 0} } -type PatternFlowPfcPausePauseClass2_Choice struct { +type PatternFlowIpv4FragmentOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass2_Choice{} +func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { + *x = PatternFlowIpv4FragmentOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[945] + mi := &file_otg_proto_msgTypes[939] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { +func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[945] - if protoimpl.UnsafeEnabled && x != nil { +func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[939] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -86758,34 +87456,34 @@ func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0} +// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384, 0} } -type PatternFlowPfcPausePauseClass3_Choice struct { +type PatternFlowIpv4TimeToLive_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass3_Choice{} +func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { + *x = PatternFlowIpv4TimeToLive_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[946] + mi := &file_otg_proto_msgTypes[940] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { +func (x *PatternFlowIpv4TimeToLive_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[946] +func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[940] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86796,34 +87494,34 @@ func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0} +// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387, 0} } -type PatternFlowPfcPausePauseClass4_Choice struct { +type PatternFlowIpv4Protocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass4_Choice{} +func (x *PatternFlowIpv4Protocol_Choice) Reset() { + *x = PatternFlowIpv4Protocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[947] + mi := &file_otg_proto_msgTypes[941] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { +func (x *PatternFlowIpv4Protocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[947] +func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[941] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86834,34 +87532,34 @@ func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0} +// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390, 0} } -type PatternFlowPfcPausePauseClass5_Choice struct { +type PatternFlowIpv4HeaderChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass5_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[948] + mi := &file_otg_proto_msgTypes[942] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[948] +func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[942] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86872,34 +87570,34 @@ func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391, 0} } -type PatternFlowPfcPausePauseClass6_Choice struct { +type PatternFlowIpv4HeaderChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass6_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[949] + mi := &file_otg_proto_msgTypes[943] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[949] +func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[943] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86910,34 +87608,34 @@ func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391, 1} } -type PatternFlowPfcPausePauseClass7_Choice struct { +type PatternFlowIpv4Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass7_Choice{} +func (x *PatternFlowIpv4Src_Choice) Reset() { + *x = PatternFlowIpv4Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[950] + mi := &file_otg_proto_msgTypes[944] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { +func (x *PatternFlowIpv4Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[950] +func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[944] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86948,34 +87646,34 @@ func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0} +// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{394, 0} } -type PatternFlowEthernetPauseDst_Choice struct { +type PatternFlowIpv4Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseDst_Choice) Reset() { - *x = PatternFlowEthernetPauseDst_Choice{} +func (x *PatternFlowIpv4Dst_Choice) Reset() { + *x = PatternFlowIpv4Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[951] + mi := &file_otg_proto_msgTypes[945] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[951] +func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[945] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86986,34 +87684,34 @@ func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0} +// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{397, 0} } -type PatternFlowEthernetPauseSrc_Choice struct { +type PatternFlowIpv4PriorityRaw_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { - *x = PatternFlowEthernetPauseSrc_Choice{} +func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { + *x = PatternFlowIpv4PriorityRaw_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[952] + mi := &file_otg_proto_msgTypes[946] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[952] +func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[946] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87024,34 +87722,34 @@ func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0} +// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{400, 0} } -type PatternFlowEthernetPauseEtherType_Choice struct { +type PatternFlowIpv4DscpPhb_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { - *x = PatternFlowEthernetPauseEtherType_Choice{} +func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { + *x = PatternFlowIpv4DscpPhb_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[953] + mi := &file_otg_proto_msgTypes[947] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4DscpPhb_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[953] +func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[947] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87062,34 +87760,34 @@ func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0} +// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{403, 0} } -type PatternFlowEthernetPauseControlOpCode_Choice struct { +type PatternFlowIpv4DscpEcn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { - *x = PatternFlowEthernetPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { + *x = PatternFlowIpv4DscpEcn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[954] + mi := &file_otg_proto_msgTypes[948] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4DscpEcn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[954] +func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[948] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87100,34 +87798,34 @@ func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0} +// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406, 0} } -type PatternFlowEthernetPauseTime_Choice struct { +type PatternFlowIpv4TosPrecedence_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseTime_Choice) Reset() { - *x = PatternFlowEthernetPauseTime_Choice{} +func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { + *x = PatternFlowIpv4TosPrecedence_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[955] + mi := &file_otg_proto_msgTypes[949] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTime_Choice) String() string { +func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[955] +func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[949] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87138,34 +87836,34 @@ func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0} +// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{409, 0} } -type PatternFlowTcpSrcPort_Choice struct { +type PatternFlowIpv4TosDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSrcPort_Choice) Reset() { - *x = PatternFlowTcpSrcPort_Choice{} +func (x *PatternFlowIpv4TosDelay_Choice) Reset() { + *x = PatternFlowIpv4TosDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[956] + mi := &file_otg_proto_msgTypes[950] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPort_Choice) String() string { +func (x *PatternFlowIpv4TosDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[956] +func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[950] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87176,34 +87874,34 @@ func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0} +// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{412, 0} } -type PatternFlowTcpDstPort_Choice struct { +type PatternFlowIpv4TosThroughput_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDstPort_Choice) Reset() { - *x = PatternFlowTcpDstPort_Choice{} +func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { + *x = PatternFlowIpv4TosThroughput_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[957] + mi := &file_otg_proto_msgTypes[951] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPort_Choice) String() string { +func (x *PatternFlowIpv4TosThroughput_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[957] +func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[951] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87214,34 +87912,34 @@ func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0} +// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{415, 0} } -type PatternFlowTcpSeqNum_Choice struct { +type PatternFlowIpv4TosReliability_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSeqNum_Choice) Reset() { - *x = PatternFlowTcpSeqNum_Choice{} +func (x *PatternFlowIpv4TosReliability_Choice) Reset() { + *x = PatternFlowIpv4TosReliability_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[958] + mi := &file_otg_proto_msgTypes[952] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNum_Choice) String() string { +func (x *PatternFlowIpv4TosReliability_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[958] +func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[952] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87252,34 +87950,34 @@ func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0} +// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{418, 0} } -type PatternFlowTcpAckNum_Choice struct { +type PatternFlowIpv4TosMonetary_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpAckNum_Choice) Reset() { - *x = PatternFlowTcpAckNum_Choice{} +func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { + *x = PatternFlowIpv4TosMonetary_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[959] + mi := &file_otg_proto_msgTypes[953] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNum_Choice) String() string { +func (x *PatternFlowIpv4TosMonetary_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} -func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[959] +func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[953] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87290,34 +87988,34 @@ func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0} +// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{421, 0} } -type PatternFlowTcpDataOffset_Choice struct { +type PatternFlowIpv4TosUnused_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDataOffset_Choice) Reset() { - *x = PatternFlowTcpDataOffset_Choice{} +func (x *PatternFlowIpv4TosUnused_Choice) Reset() { + *x = PatternFlowIpv4TosUnused_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[960] + mi := &file_otg_proto_msgTypes[954] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffset_Choice) String() string { +func (x *PatternFlowIpv4TosUnused_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[960] +func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[954] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87328,34 +88026,34 @@ func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0} +// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{424, 0} } -type PatternFlowTcpEcnNs_Choice struct { +type PatternFlowIpv6Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnNs_Choice) Reset() { - *x = PatternFlowTcpEcnNs_Choice{} +func (x *PatternFlowIpv6Version_Choice) Reset() { + *x = PatternFlowIpv6Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[961] + mi := &file_otg_proto_msgTypes[955] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNs_Choice) String() string { +func (x *PatternFlowIpv6Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[961] +func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[955] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87366,34 +88064,34 @@ func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0} +// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{427, 0} } -type PatternFlowTcpEcnCwr_Choice struct { +type PatternFlowIpv6TrafficClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnCwr_Choice) Reset() { - *x = PatternFlowTcpEcnCwr_Choice{} +func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { + *x = PatternFlowIpv6TrafficClass_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[962] + mi := &file_otg_proto_msgTypes[956] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwr_Choice) String() string { +func (x *PatternFlowIpv6TrafficClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[962] +func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[956] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87404,34 +88102,34 @@ func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0} +// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{430, 0} } -type PatternFlowTcpEcnEcho_Choice struct { +type PatternFlowIpv6FlowLabel_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnEcho_Choice) Reset() { - *x = PatternFlowTcpEcnEcho_Choice{} +func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { + *x = PatternFlowIpv6FlowLabel_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[963] + mi := &file_otg_proto_msgTypes[957] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEcho_Choice) String() string { +func (x *PatternFlowIpv6FlowLabel_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[963] +func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[957] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87442,34 +88140,34 @@ func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0} +// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 0} } -type PatternFlowTcpCtlUrg_Choice struct { +type PatternFlowIpv6PayloadLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlUrg_Choice) Reset() { - *x = PatternFlowTcpCtlUrg_Choice{} +func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { + *x = PatternFlowIpv6PayloadLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[964] + mi := &file_otg_proto_msgTypes[958] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrg_Choice) String() string { +func (x *PatternFlowIpv6PayloadLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[964] +func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[958] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87480,34 +88178,34 @@ func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0} +// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{436, 0} } -type PatternFlowTcpCtlAck_Choice struct { +type PatternFlowIpv6NextHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlAck_Choice) Reset() { - *x = PatternFlowTcpCtlAck_Choice{} +func (x *PatternFlowIpv6NextHeader_Choice) Reset() { + *x = PatternFlowIpv6NextHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[965] + mi := &file_otg_proto_msgTypes[959] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAck_Choice) String() string { +func (x *PatternFlowIpv6NextHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[965] +func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[959] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87518,34 +88216,34 @@ func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0} +// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{439, 0} } -type PatternFlowTcpCtlPsh_Choice struct { +type PatternFlowIpv6HopLimit_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlPsh_Choice) Reset() { - *x = PatternFlowTcpCtlPsh_Choice{} +func (x *PatternFlowIpv6HopLimit_Choice) Reset() { + *x = PatternFlowIpv6HopLimit_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[966] + mi := &file_otg_proto_msgTypes[960] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPsh_Choice) String() string { +func (x *PatternFlowIpv6HopLimit_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[966] +func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[960] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87556,34 +88254,34 @@ func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0} +// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{442, 0} } -type PatternFlowTcpCtlRst_Choice struct { +type PatternFlowIpv6Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlRst_Choice) Reset() { - *x = PatternFlowTcpCtlRst_Choice{} +func (x *PatternFlowIpv6Src_Choice) Reset() { + *x = PatternFlowIpv6Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[967] + mi := &file_otg_proto_msgTypes[961] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRst_Choice) String() string { +func (x *PatternFlowIpv6Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[967] +func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[961] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87594,34 +88292,34 @@ func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0} +// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{445, 0} } -type PatternFlowTcpCtlSyn_Choice struct { +type PatternFlowIpv6Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlSyn_Choice) Reset() { - *x = PatternFlowTcpCtlSyn_Choice{} +func (x *PatternFlowIpv6Dst_Choice) Reset() { + *x = PatternFlowIpv6Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[968] + mi := &file_otg_proto_msgTypes[962] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSyn_Choice) String() string { +func (x *PatternFlowIpv6Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[968] +func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[962] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87632,34 +88330,34 @@ func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0} +// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{448, 0} } -type PatternFlowTcpCtlFin_Choice struct { +type PatternFlowPfcPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlFin_Choice) Reset() { - *x = PatternFlowTcpCtlFin_Choice{} +func (x *PatternFlowPfcPauseDst_Choice) Reset() { + *x = PatternFlowPfcPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[969] + mi := &file_otg_proto_msgTypes[963] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFin_Choice) String() string { +func (x *PatternFlowPfcPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[969] +func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[963] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87670,34 +88368,34 @@ func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0} +// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{451, 0} } -type PatternFlowTcpWindow_Choice struct { +type PatternFlowPfcPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpWindow_Choice) Reset() { - *x = PatternFlowTcpWindow_Choice{} +func (x *PatternFlowPfcPauseSrc_Choice) Reset() { + *x = PatternFlowPfcPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[970] + mi := &file_otg_proto_msgTypes[964] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindow_Choice) String() string { +func (x *PatternFlowPfcPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[970] +func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[964] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87708,34 +88406,34 @@ func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0} +// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{454, 0} } -type PatternFlowUdpSrcPort_Choice struct { +type PatternFlowPfcPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpSrcPort_Choice) Reset() { - *x = PatternFlowUdpSrcPort_Choice{} +func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { + *x = PatternFlowPfcPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[971] + mi := &file_otg_proto_msgTypes[965] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPort_Choice) String() string { +func (x *PatternFlowPfcPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[971] +func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[965] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87746,34 +88444,34 @@ func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0} +// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{457, 0} } -type PatternFlowUdpDstPort_Choice struct { +type PatternFlowPfcPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpDstPort_Choice) Reset() { - *x = PatternFlowUdpDstPort_Choice{} +func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { + *x = PatternFlowPfcPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[972] + mi := &file_otg_proto_msgTypes[966] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPort_Choice) String() string { +func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[972] +func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[966] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87784,34 +88482,34 @@ func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0} +// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{460, 0} } -type PatternFlowUdpLength_Choice struct { +type PatternFlowPfcPauseClassEnableVector_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpLength_Choice) Reset() { - *x = PatternFlowUdpLength_Choice{} +func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { + *x = PatternFlowPfcPauseClassEnableVector_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[973] + mi := &file_otg_proto_msgTypes[967] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLength_Choice) String() string { +func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} -func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[973] +func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[967] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87822,34 +88520,34 @@ func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0} +// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463, 0} } -type PatternFlowUdpChecksum_Choice struct { +type PatternFlowPfcPausePauseClass0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Choice) Reset() { - *x = PatternFlowUdpChecksum_Choice{} +func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[974] + mi := &file_otg_proto_msgTypes[968] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[974] +func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[968] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87860,34 +88558,34 @@ func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{466, 0} } -type PatternFlowUdpChecksum_Generated struct { +type PatternFlowPfcPausePauseClass1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Generated) Reset() { - *x = PatternFlowUdpChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[975] + mi := &file_otg_proto_msgTypes[969] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[975] +func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[969] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87898,34 +88596,34 @@ func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{469, 0} } -type PatternFlowGreChecksumPresent_Choice struct { +type PatternFlowPfcPausePauseClass2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksumPresent_Choice) Reset() { - *x = PatternFlowGreChecksumPresent_Choice{} +func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass2_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[976] + mi := &file_otg_proto_msgTypes[970] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[976] +func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[970] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87936,34 +88634,34 @@ func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{472, 0} } -type PatternFlowGreReserved0_Choice struct { +type PatternFlowPfcPausePauseClass3_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved0_Choice) Reset() { - *x = PatternFlowGreReserved0_Choice{} +func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass3_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[977] + mi := &file_otg_proto_msgTypes[971] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[977] +func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[971] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87974,34 +88672,34 @@ func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{475, 0} } -type PatternFlowGreVersion_Choice struct { +type PatternFlowPfcPausePauseClass4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreVersion_Choice) Reset() { - *x = PatternFlowGreVersion_Choice{} +func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[978] + mi := &file_otg_proto_msgTypes[972] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} -func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[978] +func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[972] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88012,34 +88710,34 @@ func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{478, 0} } -type PatternFlowGreProtocol_Choice struct { +type PatternFlowPfcPausePauseClass5_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreProtocol_Choice) Reset() { - *x = PatternFlowGreProtocol_Choice{} +func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass5_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[979] + mi := &file_otg_proto_msgTypes[973] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} -func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[979] +func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[973] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88050,34 +88748,34 @@ func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{481, 0} } -type PatternFlowGreChecksum_Choice struct { +type PatternFlowPfcPausePauseClass6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Choice) Reset() { - *x = PatternFlowGreChecksum_Choice{} +func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[980] + mi := &file_otg_proto_msgTypes[974] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[980] +func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[974] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88088,34 +88786,34 @@ func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{484, 0} } -type PatternFlowGreChecksum_Generated struct { +type PatternFlowPfcPausePauseClass7_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Generated) Reset() { - *x = PatternFlowGreChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass7_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[981] + mi := &file_otg_proto_msgTypes[975] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[981] +func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[975] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88126,34 +88824,34 @@ func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{487, 0} } -type PatternFlowGreReserved1_Choice struct { +type PatternFlowEthernetPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved1_Choice) Reset() { - *x = PatternFlowGreReserved1_Choice{} +func (x *PatternFlowEthernetPauseDst_Choice) Reset() { + *x = PatternFlowEthernetPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[982] + mi := &file_otg_proto_msgTypes[976] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1_Choice) String() string { +func (x *PatternFlowEthernetPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[982] +func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[976] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88164,34 +88862,34 @@ func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555, 0} +// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{490, 0} } -type PatternFlowGtpv1Version_Choice struct { +type PatternFlowEthernetPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Version_Choice) Reset() { - *x = PatternFlowGtpv1Version_Choice{} +func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { + *x = PatternFlowEthernetPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[983] + mi := &file_otg_proto_msgTypes[977] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version_Choice) String() string { +func (x *PatternFlowEthernetPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[983] +func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[977] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88202,34 +88900,34 @@ func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558, 0} +// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{493, 0} } -type PatternFlowGtpv1ProtocolType_Choice struct { +type PatternFlowEthernetPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { - *x = PatternFlowGtpv1ProtocolType_Choice{} +func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { + *x = PatternFlowEthernetPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[984] + mi := &file_otg_proto_msgTypes[978] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { +func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[984] +func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[978] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88240,34 +88938,34 @@ func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561, 0} +// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{496, 0} } -type PatternFlowGtpv1Reserved_Choice struct { +type PatternFlowEthernetPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Reserved_Choice) Reset() { - *x = PatternFlowGtpv1Reserved_Choice{} +func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { + *x = PatternFlowEthernetPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[985] + mi := &file_otg_proto_msgTypes[979] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved_Choice) String() string { +func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[985] +func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[979] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88278,34 +88976,34 @@ func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564, 0} +// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{499, 0} } -type PatternFlowGtpv1EFlag_Choice struct { +type PatternFlowEthernetPauseTime_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1EFlag_Choice) Reset() { - *x = PatternFlowGtpv1EFlag_Choice{} +func (x *PatternFlowEthernetPauseTime_Choice) Reset() { + *x = PatternFlowEthernetPauseTime_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[986] + mi := &file_otg_proto_msgTypes[980] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag_Choice) String() string { +func (x *PatternFlowEthernetPauseTime_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[986] +func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[980] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88316,34 +89014,34 @@ func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567, 0} +// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{502, 0} } -type PatternFlowGtpv1SFlag_Choice struct { +type PatternFlowTcpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SFlag_Choice) Reset() { - *x = PatternFlowGtpv1SFlag_Choice{} +func (x *PatternFlowTcpSrcPort_Choice) Reset() { + *x = PatternFlowTcpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[987] + mi := &file_otg_proto_msgTypes[981] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag_Choice) String() string { +func (x *PatternFlowTcpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[987] +func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[981] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88354,34 +89052,34 @@ func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570, 0} +// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{505, 0} } -type PatternFlowGtpv1PnFlag_Choice struct { +type PatternFlowTcpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { - *x = PatternFlowGtpv1PnFlag_Choice{} +func (x *PatternFlowTcpDstPort_Choice) Reset() { + *x = PatternFlowTcpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[988] + mi := &file_otg_proto_msgTypes[982] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlag_Choice) String() string { +func (x *PatternFlowTcpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[988] +func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[982] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88392,34 +89090,34 @@ func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573, 0} +// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{508, 0} } -type PatternFlowGtpv1MessageType_Choice struct { +type PatternFlowTcpSeqNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageType_Choice) Reset() { - *x = PatternFlowGtpv1MessageType_Choice{} +func (x *PatternFlowTcpSeqNum_Choice) Reset() { + *x = PatternFlowTcpSeqNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[989] + mi := &file_otg_proto_msgTypes[983] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageType_Choice) String() string { +func (x *PatternFlowTcpSeqNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} +func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[989] +func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[983] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88430,34 +89128,34 @@ func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576, 0} +// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511, 0} } -type PatternFlowGtpv1MessageLength_Choice struct { +type PatternFlowTcpAckNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { - *x = PatternFlowGtpv1MessageLength_Choice{} +func (x *PatternFlowTcpAckNum_Choice) Reset() { + *x = PatternFlowTcpAckNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[990] + mi := &file_otg_proto_msgTypes[984] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLength_Choice) String() string { +func (x *PatternFlowTcpAckNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[990] +func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[984] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88468,34 +89166,34 @@ func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579, 0} +// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514, 0} } -type PatternFlowGtpv1Teid_Choice struct { +type PatternFlowTcpDataOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Teid_Choice) Reset() { - *x = PatternFlowGtpv1Teid_Choice{} +func (x *PatternFlowTcpDataOffset_Choice) Reset() { + *x = PatternFlowTcpDataOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[991] + mi := &file_otg_proto_msgTypes[985] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Teid_Choice) String() string { +func (x *PatternFlowTcpDataOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} +func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[991] +func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[985] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88506,34 +89204,34 @@ func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582, 0} +// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{517, 0} } -type PatternFlowGtpv1SquenceNumber_Choice struct { +type PatternFlowTcpEcnNs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { - *x = PatternFlowGtpv1SquenceNumber_Choice{} +func (x *PatternFlowTcpEcnNs_Choice) Reset() { + *x = PatternFlowTcpEcnNs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[992] + mi := &file_otg_proto_msgTypes[986] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { +func (x *PatternFlowTcpEcnNs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[992] +func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[986] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88544,34 +89242,34 @@ func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0} -} +// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520, 0} +} -type PatternFlowGtpv1NPduNumber_Choice struct { +type PatternFlowTcpEcnCwr_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { - *x = PatternFlowGtpv1NPduNumber_Choice{} +func (x *PatternFlowTcpEcnCwr_Choice) Reset() { + *x = PatternFlowTcpEcnCwr_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[993] + mi := &file_otg_proto_msgTypes[987] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { +func (x *PatternFlowTcpEcnCwr_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[993] +func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[987] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88582,34 +89280,34 @@ func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0} +// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{523, 0} } -type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { +type PatternFlowTcpEcnEcho_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} +func (x *PatternFlowTcpEcnEcho_Choice) Reset() { + *x = PatternFlowTcpEcnEcho_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[994] + mi := &file_otg_proto_msgTypes[988] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { +func (x *PatternFlowTcpEcnEcho_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[994] +func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[988] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88620,34 +89318,34 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0} +// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{526, 0} } -type PatternFlowGtpExtensionExtensionLength_Choice struct { +type PatternFlowTcpCtlUrg_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { - *x = PatternFlowGtpExtensionExtensionLength_Choice{} +func (x *PatternFlowTcpCtlUrg_Choice) Reset() { + *x = PatternFlowTcpCtlUrg_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[995] + mi := &file_otg_proto_msgTypes[989] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { +func (x *PatternFlowTcpCtlUrg_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[995] +func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[989] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88658,34 +89356,34 @@ func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0} +// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{529, 0} } -type PatternFlowGtpExtensionContents_Choice struct { +type PatternFlowTcpCtlAck_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionContents_Choice) Reset() { - *x = PatternFlowGtpExtensionContents_Choice{} +func (x *PatternFlowTcpCtlAck_Choice) Reset() { + *x = PatternFlowTcpCtlAck_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[996] + mi := &file_otg_proto_msgTypes[990] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContents_Choice) String() string { +func (x *PatternFlowTcpCtlAck_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[996] +func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[990] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88696,34 +89394,34 @@ func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0} +// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{532, 0} } -type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { +type PatternFlowTcpCtlPsh_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} +func (x *PatternFlowTcpCtlPsh_Choice) Reset() { + *x = PatternFlowTcpCtlPsh_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[997] + mi := &file_otg_proto_msgTypes[991] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { +func (x *PatternFlowTcpCtlPsh_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[997] +func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[991] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88734,34 +89432,34 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0} +// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{535, 0} } -type PatternFlowGtpv2Version_Choice struct { +type PatternFlowTcpCtlRst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Version_Choice) Reset() { - *x = PatternFlowGtpv2Version_Choice{} +func (x *PatternFlowTcpCtlRst_Choice) Reset() { + *x = PatternFlowTcpCtlRst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[998] + mi := &file_otg_proto_msgTypes[992] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Version_Choice) String() string { +func (x *PatternFlowTcpCtlRst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[998] +func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[992] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88772,34 +89470,34 @@ func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0} +// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{538, 0} } -type PatternFlowGtpv2PiggybackingFlag_Choice struct { +type PatternFlowTcpCtlSyn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag_Choice{} +func (x *PatternFlowTcpCtlSyn_Choice) Reset() { + *x = PatternFlowTcpCtlSyn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[999] + mi := &file_otg_proto_msgTypes[993] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { +func (x *PatternFlowTcpCtlSyn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[999] +func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[993] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88810,34 +89508,34 @@ func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0} +// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541, 0} } -type PatternFlowGtpv2TeidFlag_Choice struct { +type PatternFlowTcpCtlFin_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { - *x = PatternFlowGtpv2TeidFlag_Choice{} +func (x *PatternFlowTcpCtlFin_Choice) Reset() { + *x = PatternFlowTcpCtlFin_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1000] + mi := &file_otg_proto_msgTypes[994] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { +func (x *PatternFlowTcpCtlFin_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1000] +func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[994] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88848,34 +89546,34 @@ func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0} +// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544, 0} } -type PatternFlowGtpv2Spare1_Choice struct { +type PatternFlowTcpWindow_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare1_Choice) Reset() { - *x = PatternFlowGtpv2Spare1_Choice{} +func (x *PatternFlowTcpWindow_Choice) Reset() { + *x = PatternFlowTcpWindow_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1001] + mi := &file_otg_proto_msgTypes[995] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1_Choice) String() string { +func (x *PatternFlowTcpWindow_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} +func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1001] +func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[995] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88886,34 +89584,34 @@ func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0} +// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547, 0} } -type PatternFlowGtpv2MessageType_Choice struct { +type PatternFlowUdpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageType_Choice) Reset() { - *x = PatternFlowGtpv2MessageType_Choice{} +func (x *PatternFlowUdpSrcPort_Choice) Reset() { + *x = PatternFlowUdpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1002] + mi := &file_otg_proto_msgTypes[996] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageType_Choice) String() string { +func (x *PatternFlowUdpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} +func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1002] +func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[996] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88924,34 +89622,34 @@ func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0} +// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550, 0} } -type PatternFlowGtpv2MessageLength_Choice struct { +type PatternFlowUdpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { - *x = PatternFlowGtpv2MessageLength_Choice{} +func (x *PatternFlowUdpDstPort_Choice) Reset() { + *x = PatternFlowUdpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1003] + mi := &file_otg_proto_msgTypes[997] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLength_Choice) String() string { +func (x *PatternFlowUdpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1003] +func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[997] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88962,34 +89660,34 @@ func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0} +// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553, 0} } -type PatternFlowGtpv2Teid_Choice struct { +type PatternFlowUdpLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Teid_Choice) Reset() { - *x = PatternFlowGtpv2Teid_Choice{} +func (x *PatternFlowUdpLength_Choice) Reset() { + *x = PatternFlowUdpLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1004] + mi := &file_otg_proto_msgTypes[998] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Teid_Choice) String() string { +func (x *PatternFlowUdpLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} +func (*PatternFlowUdpLength_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1004] +func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[998] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89000,34 +89698,34 @@ func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0} +// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556, 0} } -type PatternFlowGtpv2SequenceNumber_Choice struct { +type PatternFlowUdpChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { - *x = PatternFlowGtpv2SequenceNumber_Choice{} +func (x *PatternFlowUdpChecksum_Choice) Reset() { + *x = PatternFlowUdpChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1005] + mi := &file_otg_proto_msgTypes[999] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { +func (x *PatternFlowUdpChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1005] +func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[999] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89038,34 +89736,34 @@ func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0} +// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557, 0} } -type PatternFlowGtpv2Spare2_Choice struct { +type PatternFlowUdpChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare2_Choice) Reset() { - *x = PatternFlowGtpv2Spare2_Choice{} +func (x *PatternFlowUdpChecksum_Generated) Reset() { + *x = PatternFlowUdpChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1006] + mi := &file_otg_proto_msgTypes[1000] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2_Choice) String() string { +func (x *PatternFlowUdpChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1006] +func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1000] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89076,34 +89774,34 @@ func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0} +// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557, 1} } -type PatternFlowArpHardwareType_Choice struct { +type PatternFlowGreChecksumPresent_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareType_Choice) Reset() { - *x = PatternFlowArpHardwareType_Choice{} +func (x *PatternFlowGreChecksumPresent_Choice) Reset() { + *x = PatternFlowGreChecksumPresent_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1007] + mi := &file_otg_proto_msgTypes[1001] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareType_Choice) String() string { +func (x *PatternFlowGreChecksumPresent_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1007] +func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1001] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89114,34 +89812,34 @@ func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0} +// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560, 0} } -type PatternFlowArpProtocolType_Choice struct { +type PatternFlowGreReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolType_Choice) Reset() { - *x = PatternFlowArpProtocolType_Choice{} +func (x *PatternFlowGreReserved0_Choice) Reset() { + *x = PatternFlowGreReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1008] + mi := &file_otg_proto_msgTypes[1002] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolType_Choice) String() string { +func (x *PatternFlowGreReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1008] +func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1002] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89152,34 +89850,34 @@ func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0} +// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563, 0} } -type PatternFlowArpHardwareLength_Choice struct { +type PatternFlowGreVersion_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareLength_Choice) Reset() { - *x = PatternFlowArpHardwareLength_Choice{} +func (x *PatternFlowGreVersion_Choice) Reset() { + *x = PatternFlowGreVersion_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1009] + mi := &file_otg_proto_msgTypes[1003] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLength_Choice) String() string { +func (x *PatternFlowGreVersion_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} +func (*PatternFlowGreVersion_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1009] +func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1003] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89190,34 +89888,34 @@ func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0} +// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566, 0} } -type PatternFlowArpProtocolLength_Choice struct { +type PatternFlowGreProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolLength_Choice) Reset() { - *x = PatternFlowArpProtocolLength_Choice{} +func (x *PatternFlowGreProtocol_Choice) Reset() { + *x = PatternFlowGreProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1010] + mi := &file_otg_proto_msgTypes[1004] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLength_Choice) String() string { +func (x *PatternFlowGreProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} +func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1010] +func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1004] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89228,34 +89926,34 @@ func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0} +// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569, 0} } -type PatternFlowArpOperation_Choice struct { +type PatternFlowGreChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpOperation_Choice) Reset() { - *x = PatternFlowArpOperation_Choice{} +func (x *PatternFlowGreChecksum_Choice) Reset() { + *x = PatternFlowGreChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1011] + mi := &file_otg_proto_msgTypes[1005] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperation_Choice) String() string { +func (x *PatternFlowGreChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1011] +func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1005] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89266,34 +89964,34 @@ func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0} +// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570, 0} } -type PatternFlowArpSenderHardwareAddr_Choice struct { +type PatternFlowGreChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { - *x = PatternFlowArpSenderHardwareAddr_Choice{} +func (x *PatternFlowGreChecksum_Generated) Reset() { + *x = PatternFlowGreChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1012] + mi := &file_otg_proto_msgTypes[1006] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { +func (x *PatternFlowGreChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1012] +func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1006] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89304,34 +90002,34 @@ func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0} +// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570, 1} } -type PatternFlowArpSenderProtocolAddr_Choice struct { +type PatternFlowGreReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { - *x = PatternFlowArpSenderProtocolAddr_Choice{} +func (x *PatternFlowGreReserved1_Choice) Reset() { + *x = PatternFlowGreReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1013] + mi := &file_otg_proto_msgTypes[1007] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { +func (x *PatternFlowGreReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1013] +func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1007] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89342,34 +90040,34 @@ func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0} +// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{573, 0} } -type PatternFlowArpTargetHardwareAddr_Choice struct { +type PatternFlowGtpv1Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { - *x = PatternFlowArpTargetHardwareAddr_Choice{} +func (x *PatternFlowGtpv1Version_Choice) Reset() { + *x = PatternFlowGtpv1Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1014] + mi := &file_otg_proto_msgTypes[1008] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { +func (x *PatternFlowGtpv1Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1014] +func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1008] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89380,34 +90078,34 @@ func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0} +// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{576, 0} } -type PatternFlowArpTargetProtocolAddr_Choice struct { +type PatternFlowGtpv1ProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { - *x = PatternFlowArpTargetProtocolAddr_Choice{} +func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { + *x = PatternFlowGtpv1ProtocolType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1015] + mi := &file_otg_proto_msgTypes[1009] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { +func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1015] +func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1009] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89418,35 +90116,35 @@ func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0} +// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{579, 0} } -type PatternFlowIcmpEchoType_Choice struct { +type PatternFlowGtpv1Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoType_Choice) Reset() { - *x = PatternFlowIcmpEchoType_Choice{} +func (x *PatternFlowGtpv1Reserved_Choice) Reset() { + *x = PatternFlowGtpv1Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1016] + mi := &file_otg_proto_msgTypes[1010] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoType_Choice) String() string { +func (x *PatternFlowGtpv1Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1016] - if protoimpl.UnsafeEnabled && x != nil { +func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1010] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -89456,34 +90154,34 @@ func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0} +// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{582, 0} } -type PatternFlowIcmpEchoCode_Choice struct { +type PatternFlowGtpv1EFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoCode_Choice) Reset() { - *x = PatternFlowIcmpEchoCode_Choice{} +func (x *PatternFlowGtpv1EFlag_Choice) Reset() { + *x = PatternFlowGtpv1EFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1017] + mi := &file_otg_proto_msgTypes[1011] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCode_Choice) String() string { +func (x *PatternFlowGtpv1EFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1017] +func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1011] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89494,34 +90192,34 @@ func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0} +// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{585, 0} } -type PatternFlowIcmpEchoChecksum_Choice struct { +type PatternFlowGtpv1SFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpEchoChecksum_Choice{} +func (x *PatternFlowGtpv1SFlag_Choice) Reset() { + *x = PatternFlowGtpv1SFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1018] + mi := &file_otg_proto_msgTypes[1012] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { +func (x *PatternFlowGtpv1SFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1018] +func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1012] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89532,34 +90230,34 @@ func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 0} +// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{588, 0} } -type PatternFlowIcmpEchoChecksum_Generated struct { +type PatternFlowGtpv1PnFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpEchoChecksum_Generated{} +func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { + *x = PatternFlowGtpv1PnFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1019] + mi := &file_otg_proto_msgTypes[1013] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { +func (x *PatternFlowGtpv1PnFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1019] +func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1013] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89570,34 +90268,34 @@ func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 1} +// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{591, 0} } -type PatternFlowIcmpEchoIdentifier_Choice struct { +type PatternFlowGtpv1MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpEchoIdentifier_Choice{} +func (x *PatternFlowGtpv1MessageType_Choice) Reset() { + *x = PatternFlowGtpv1MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1020] + mi := &file_otg_proto_msgTypes[1014] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1020] +func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1014] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89608,34 +90306,34 @@ func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664, 0} +// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{594, 0} } -type PatternFlowIcmpEchoSequenceNumber_Choice struct { +type PatternFlowGtpv1MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber_Choice{} +func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { + *x = PatternFlowGtpv1MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1021] + mi := &file_otg_proto_msgTypes[1015] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1021] +func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1015] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89646,34 +90344,34 @@ func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667, 0} +// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{597, 0} } -type PatternFlowIcmpCommonChecksum_Choice struct { +type PatternFlowGtpv1Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpCommonChecksum_Choice{} +func (x *PatternFlowGtpv1Teid_Choice) Reset() { + *x = PatternFlowGtpv1Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1022] + mi := &file_otg_proto_msgTypes[1016] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv1Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1022] +func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1016] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89684,34 +90382,34 @@ func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 0} +// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600, 0} } -type PatternFlowIcmpCommonChecksum_Generated struct { +type PatternFlowGtpv1SquenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpCommonChecksum_Generated{} +func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { + *x = PatternFlowGtpv1SquenceNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1023] + mi := &file_otg_proto_msgTypes[1017] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1023] +func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1017] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89722,34 +90420,34 @@ func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 1} +// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{603, 0} } -type PatternFlowIcmpNextFieldsIdentifier_Choice struct { +type PatternFlowGtpv1NPduNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} +func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { + *x = PatternFlowGtpv1NPduNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1024] + mi := &file_otg_proto_msgTypes[1018] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1024] +func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1018] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89760,34 +90458,34 @@ func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671, 0} +// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{606, 0} } -type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { +type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1025] + mi := &file_otg_proto_msgTypes[1019] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1025] +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1019] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89798,34 +90496,34 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674, 0} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{609, 0} } -type PatternFlowIcmpv6EchoType_Choice struct { +type PatternFlowGtpExtensionExtensionLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { - *x = PatternFlowIcmpv6EchoType_Choice{} +func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { + *x = PatternFlowGtpExtensionExtensionLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1026] + mi := &file_otg_proto_msgTypes[1020] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType_Choice) String() string { +func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1026] +func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1020] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89836,34 +90534,34 @@ func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677, 0} +// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{612, 0} } -type PatternFlowIcmpv6EchoCode_Choice struct { +type PatternFlowGtpExtensionContents_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { - *x = PatternFlowIcmpv6EchoCode_Choice{} +func (x *PatternFlowGtpExtensionContents_Choice) Reset() { + *x = PatternFlowGtpExtensionContents_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1027] + mi := &file_otg_proto_msgTypes[1021] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { +func (x *PatternFlowGtpExtensionContents_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1027] +func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1021] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89874,34 +90572,34 @@ func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680, 0} +// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{615, 0} } -type PatternFlowIcmpv6EchoIdentifier_Choice struct { +type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier_Choice{} +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1028] + mi := &file_otg_proto_msgTypes[1022] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1028] +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1022] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89912,34 +90610,34 @@ func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683, 0} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{618, 0} } -type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { +type PatternFlowGtpv2Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} +func (x *PatternFlowGtpv2Version_Choice) Reset() { + *x = PatternFlowGtpv2Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1029] + mi := &file_otg_proto_msgTypes[1023] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv2Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1029] +func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1023] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89950,34 +90648,34 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686, 0} +// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{621, 0} } -type PatternFlowIcmpv6EchoChecksum_Choice struct { +type PatternFlowGtpv2PiggybackingFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Choice{} +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1030] + mi := &file_otg_proto_msgTypes[1024] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1030] +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1024] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89988,34 +90686,34 @@ func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{624, 0} } -type PatternFlowIcmpv6EchoChecksum_Generated struct { +type PatternFlowGtpv2TeidFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Generated{} +func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { + *x = PatternFlowGtpv2TeidFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1031] + mi := &file_otg_proto_msgTypes[1025] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { +func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1031] +func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1025] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90026,34 +90724,34 @@ func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 1} +// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{627, 0} } -type PatternFlowIcmpv6CommonChecksum_Choice struct { +type PatternFlowGtpv2Spare1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Choice{} +func (x *PatternFlowGtpv2Spare1_Choice) Reset() { + *x = PatternFlowGtpv2Spare1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1032] + mi := &file_otg_proto_msgTypes[1026] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv2Spare1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1032] +func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1026] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90064,34 +90762,34 @@ func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 0} +// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{630, 0} } -type PatternFlowIcmpv6CommonChecksum_Generated struct { +type PatternFlowGtpv2MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Generated{} +func (x *PatternFlowGtpv2MessageType_Choice) Reset() { + *x = PatternFlowGtpv2MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1033] + mi := &file_otg_proto_msgTypes[1027] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv2MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1033] +func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1027] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90102,34 +90800,34 @@ func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 1} +// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{633, 0} } -type PatternFlowPppAddress_Choice struct { +type PatternFlowGtpv2MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppAddress_Choice) Reset() { - *x = PatternFlowPppAddress_Choice{} +func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { + *x = PatternFlowGtpv2MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1034] + mi := &file_otg_proto_msgTypes[1028] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress_Choice) String() string { +func (x *PatternFlowGtpv2MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1034] +func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1028] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90140,34 +90838,34 @@ func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691, 0} +// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{636, 0} } -type PatternFlowPppControl_Choice struct { +type PatternFlowGtpv2Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppControl_Choice) Reset() { - *x = PatternFlowPppControl_Choice{} +func (x *PatternFlowGtpv2Teid_Choice) Reset() { + *x = PatternFlowGtpv2Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1035] + mi := &file_otg_proto_msgTypes[1029] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl_Choice) String() string { +func (x *PatternFlowGtpv2Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} -func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1035] +func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1029] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90178,34 +90876,34 @@ func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0} +// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{639, 0} } -type PatternFlowPppProtocolType_Choice struct { +type PatternFlowGtpv2SequenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppProtocolType_Choice) Reset() { - *x = PatternFlowPppProtocolType_Choice{} +func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { + *x = PatternFlowGtpv2SequenceNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1036] + mi := &file_otg_proto_msgTypes[1030] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType_Choice) String() string { +func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1036] +func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1030] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90216,34 +90914,34 @@ func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0} +// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{642, 0} } -type PatternFlowIgmpv1Version_Choice struct { +type PatternFlowGtpv2Spare2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Version_Choice) Reset() { - *x = PatternFlowIgmpv1Version_Choice{} +func (x *PatternFlowGtpv2Spare2_Choice) Reset() { + *x = PatternFlowGtpv2Spare2_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1037] + mi := &file_otg_proto_msgTypes[1031] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version_Choice) String() string { +func (x *PatternFlowGtpv2Spare2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1037] +func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1031] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90254,34 +90952,34 @@ func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0} +// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{645, 0} } -type PatternFlowIgmpv1Type_Choice struct { +type PatternFlowArpHardwareType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Type_Choice) Reset() { - *x = PatternFlowIgmpv1Type_Choice{} +func (x *PatternFlowArpHardwareType_Choice) Reset() { + *x = PatternFlowArpHardwareType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1038] + mi := &file_otg_proto_msgTypes[1032] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type_Choice) String() string { +func (x *PatternFlowArpHardwareType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} +func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1038] +func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1032] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90292,34 +90990,34 @@ func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703, 0} +// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{648, 0} } -type PatternFlowIgmpv1Unused_Choice struct { +type PatternFlowArpProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Unused_Choice) Reset() { - *x = PatternFlowIgmpv1Unused_Choice{} +func (x *PatternFlowArpProtocolType_Choice) Reset() { + *x = PatternFlowArpProtocolType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1039] + mi := &file_otg_proto_msgTypes[1033] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused_Choice) String() string { +func (x *PatternFlowArpProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} +func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1039] +func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1033] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90330,34 +91028,34 @@ func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706, 0} +// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{651, 0} } -type PatternFlowIgmpv1Checksum_Choice struct { +type PatternFlowArpHardwareLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { - *x = PatternFlowIgmpv1Checksum_Choice{} +func (x *PatternFlowArpHardwareLength_Choice) Reset() { + *x = PatternFlowArpHardwareLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1040] + mi := &file_otg_proto_msgTypes[1034] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum_Choice) String() string { +func (x *PatternFlowArpHardwareLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} +func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1040] +func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1034] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90368,19 +91066,247 @@ func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0} +// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{654, 0} } -type PatternFlowIgmpv1Checksum_Generated struct { +type PatternFlowArpProtocolLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { - *x = PatternFlowIgmpv1Checksum_Generated{} +func (x *PatternFlowArpProtocolLength_Choice) Reset() { + *x = PatternFlowArpProtocolLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1035] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpProtocolLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} + +func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1035] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{657, 0} +} + +type PatternFlowArpOperation_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpOperation_Choice) Reset() { + *x = PatternFlowArpOperation_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1036] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpOperation_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpOperation_Choice) ProtoMessage() {} + +func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1036] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{660, 0} +} + +type PatternFlowArpSenderHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { + *x = PatternFlowArpSenderHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1037] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1037] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663, 0} +} + +type PatternFlowArpSenderProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { + *x = PatternFlowArpSenderProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1038] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1038] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666, 0} +} + +type PatternFlowArpTargetHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { + *x = PatternFlowArpTargetHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1039] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1039] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669, 0} +} + +type PatternFlowArpTargetProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { + *x = PatternFlowArpTargetProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1040] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1040] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672, 0} +} + +type PatternFlowIcmpEchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoType_Choice) Reset() { + *x = PatternFlowIcmpEchoType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1041] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90388,13 +91314,13 @@ func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { } } -func (x *PatternFlowIgmpv1Checksum_Generated) String() string { +func (x *PatternFlowIcmpEchoType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} +func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1041] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90406,19 +91332,19 @@ func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 1} +// Deprecated: Use PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675, 0} } -type PatternFlowIgmpv1GroupAddress_Choice struct { +type PatternFlowIcmpEchoCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { - *x = PatternFlowIgmpv1GroupAddress_Choice{} +func (x *PatternFlowIcmpEchoCode_Choice) Reset() { + *x = PatternFlowIcmpEchoCode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1042] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90426,13 +91352,13 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { } } -func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { +func (x *PatternFlowIcmpEchoCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1042] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90444,19 +91370,19 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0} +// Deprecated: Use PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678, 0} } -type PatternFlowMplsLabel_Choice struct { +type PatternFlowIcmpEchoChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsLabel_Choice) Reset() { - *x = PatternFlowMplsLabel_Choice{} +func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpEchoChecksum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1043] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90464,13 +91390,13 @@ func (x *PatternFlowMplsLabel_Choice) Reset() { } } -func (x *PatternFlowMplsLabel_Choice) String() string { +func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1043] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90482,19 +91408,19 @@ func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0} +// Deprecated: Use PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679, 0} } -type PatternFlowMplsTrafficClass_Choice struct { +type PatternFlowIcmpEchoChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTrafficClass_Choice) Reset() { - *x = PatternFlowMplsTrafficClass_Choice{} +func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpEchoChecksum_Generated{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1044] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90502,13 +91428,13 @@ func (x *PatternFlowMplsTrafficClass_Choice) Reset() { } } -func (x *PatternFlowMplsTrafficClass_Choice) String() string { +func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1044] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90520,19 +91446,19 @@ func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0} +// Deprecated: Use PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679, 1} } -type PatternFlowMplsBottomOfStack_Choice struct { +type PatternFlowIcmpEchoIdentifier_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { - *x = PatternFlowMplsBottomOfStack_Choice{} +func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpEchoIdentifier_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1045] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90540,13 +91466,13 @@ func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { } } -func (x *PatternFlowMplsBottomOfStack_Choice) String() string { +func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1045] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90558,19 +91484,19 @@ func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0} +// Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{682, 0} } -type PatternFlowMplsTimeToLive_Choice struct { +type PatternFlowIcmpEchoSequenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTimeToLive_Choice) Reset() { - *x = PatternFlowMplsTimeToLive_Choice{} +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1046] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90578,13 +91504,13 @@ func (x *PatternFlowMplsTimeToLive_Choice) Reset() { } } -func (x *PatternFlowMplsTimeToLive_Choice) String() string { +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1046] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90596,2713 +91522,2274 @@ func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722, 0} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{685, 0} } -var File_otg_proto protoreflect.FileDescriptor +type PatternFlowIcmpCommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -var file_otg_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xf0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, - 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, - 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, - 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, - 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, - 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, - 0x63, 0x70, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x88, - 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, - 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, - 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, - 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, - 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, - 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, - 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0xb9, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, - 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, - 0x75, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x78, 0x38, 0x38, 0x61, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, - 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, - 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, - 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, - 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcd, - 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, - 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, - 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, - 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, - 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, - 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, - 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, - 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0f, 0x61, 0x75, - 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x07, - 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x8b, - 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, - 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, - 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, - 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, 0x42, 0x0a, 0x05, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, - 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, - 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, - 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x89, 0x04, - 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, - 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, - 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, - 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, - 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, - 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, - 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, - 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0x89, 0x03, 0x0a, 0x11, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, - 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, - 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x48, - 0x02, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x48, 0x03, 0x52, 0x09, - 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x45, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, - 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, - 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, - 0x5f, 0x31, 0x71, 0x62, 0x62, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, - 0x30, 0x32, 0x5f, 0x33, 0x78, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, - 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, - 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xcc, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, - 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x48, 0x04, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, - 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x01, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, - 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xf6, 0x07, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, - 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, - 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x09, 0x52, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0b, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0d, 0x52, - 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xa2, - 0x04, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x30, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3b, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, 0x52, 0x0a, 0x6e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x09, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x64, - 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x07, 0x52, 0x03, 0x64, - 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x64, 0x73, 0x74, 0x22, 0xa7, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, - 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x48, 0x03, - 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, - 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0x4f, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, - 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf0, - 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x48, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, - 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, - 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, - 0x64, 0x22, 0x81, 0x08, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x3d, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x03, 0x52, - 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, - 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0a, - 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, - 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x0b, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, - 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, - 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x4c, 0x69, - 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x48, - 0x04, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, - 0x70, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x32, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x70, 0x62, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, - 0x62, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x35, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x06, 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x37, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, 0x62, 0x37, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x31, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, - 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, - 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, - 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, - 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, - 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, - 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, - 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, - 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, - 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, - 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, - 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, - 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, - 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, - 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, - 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, - 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, - 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, - 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x61, - 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x02, 0x52, 0x0a, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x22, 0xe9, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, - 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, - 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xaf, - 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, - 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, - 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x99, 0x01, 0x0a, - 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaf, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, - 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, - 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, - 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x62, 0x61, 0x64, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, - 0x23, 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0xb3, 0x03, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, - 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, - 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, - 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, - 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x02, 0x0a, 0x07, 0x53, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, - 0x20, 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, - 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x69, - 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, - 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, - 0x29, 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6d, 0x61, - 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, - 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, - 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, - 0x12, 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x68, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, - 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, 0x10, 0x0a, 0x12, 0x23, 0x0a, - 0x1f, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x31, - 0x10, 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x1b, - 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0xec, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, - 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x82, 0x03, - 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, - 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x6f, 0x75, 0x74, 0x5f, - 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x23, 0x0a, - 0x1f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, - 0x10, 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x63, - 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x8d, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, - 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, - 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x18, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, - 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, - 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, - 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, - 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, - 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, - 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, - 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, - 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, - 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, - 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, - 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, - 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, - 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, - 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, - 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, - 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, - 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, +func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpCommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1047] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1047] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686, 0} +} + +type PatternFlowIcmpCommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpCommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1048] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1048] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686, 1} +} + +type PatternFlowIcmpNextFieldsIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1049] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1049] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{689, 0} +} + +type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1050] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1050] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{692, 0} +} + +type PatternFlowIcmpv6EchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { + *x = PatternFlowIcmpv6EchoType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1051] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1051] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{695, 0} +} + +type PatternFlowIcmpv6EchoCode_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { + *x = PatternFlowIcmpv6EchoCode_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1052] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1052] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{698, 0} +} + +type PatternFlowIcmpv6EchoIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1053] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1053] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{701, 0} +} + +type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1054] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1054] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{704, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1055] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1055] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1056] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1056] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705, 1} +} + +type PatternFlowIcmpv6CommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1057] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1057] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706, 0} +} + +type PatternFlowIcmpv6CommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1058] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1058] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706, 1} +} + +type PatternFlowPppAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppAddress_Choice) Reset() { + *x = PatternFlowPppAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1059] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1059] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{709, 0} +} + +type PatternFlowPppControl_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppControl_Choice) Reset() { + *x = PatternFlowPppControl_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1060] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppControl_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppControl_Choice) ProtoMessage() {} + +func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1060] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{712, 0} +} + +type PatternFlowPppProtocolType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppProtocolType_Choice) Reset() { + *x = PatternFlowPppProtocolType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1061] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppProtocolType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} + +func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1061] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{715, 0} +} + +type PatternFlowIgmpv1Version_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Version_Choice) Reset() { + *x = PatternFlowIgmpv1Version_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1062] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Version_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1062] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{718, 0} +} + +type PatternFlowIgmpv1Type_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Type_Choice) Reset() { + *x = PatternFlowIgmpv1Type_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1063] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Type_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1063] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{721, 0} +} + +type PatternFlowIgmpv1Unused_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Unused_Choice) Reset() { + *x = PatternFlowIgmpv1Unused_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1064] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Unused_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1064] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724, 0} +} + +type PatternFlowIgmpv1Checksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { + *x = PatternFlowIgmpv1Checksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1065] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1065] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725, 0} +} + +type PatternFlowIgmpv1Checksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { + *x = PatternFlowIgmpv1Checksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1066] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1066] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725, 1} +} + +type PatternFlowIgmpv1GroupAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { + *x = PatternFlowIgmpv1GroupAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1067] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1067] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728, 0} +} + +type PatternFlowMplsLabel_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsLabel_Choice) Reset() { + *x = PatternFlowMplsLabel_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1068] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsLabel_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1068] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731, 0} +} + +type PatternFlowMplsTrafficClass_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTrafficClass_Choice) Reset() { + *x = PatternFlowMplsTrafficClass_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1069] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTrafficClass_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1069] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734, 0} +} + +type PatternFlowMplsBottomOfStack_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { + *x = PatternFlowMplsBottomOfStack_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1070] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsBottomOfStack_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1070] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737, 0} +} + +type PatternFlowMplsTimeToLive_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTimeToLive_Choice) Reset() { + *x = PatternFlowMplsTimeToLive_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1071] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTimeToLive_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1071] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740, 0} +} + +var File_otg_proto protoreflect.FileDescriptor + +var file_otg_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xf0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, + 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, + 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, + 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, + 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, + 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x61, + 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x61, + 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x61, 0x63, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, + 0x63, 0x70, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, + 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, + 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, + 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, + 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, + 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, + 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0xb9, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, + 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, + 0x75, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, + 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x78, 0x38, 0x38, 0x61, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, + 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, + 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, + 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcd, + 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, + 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, + 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, + 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, + 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, - 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, - 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, - 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, - 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, - 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, - 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x22, 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x50, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, - 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, - 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, - 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, - 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb4, 0x05, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x61, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, - 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, - 0x69, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, - 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02, - 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, - 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x12, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x01, - 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x51, 0x0a, 0x06, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, + 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, + 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, + 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0f, 0x61, 0x75, + 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x07, + 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x8b, + 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, + 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, + 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, + 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, + 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, + 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, + 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, + 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, 0x42, 0x0a, 0x05, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, + 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, + 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, + 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x89, 0x04, + 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, + 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, + 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, + 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, + 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, + 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0x89, 0x03, 0x0a, 0x11, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, + 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x48, + 0x02, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x48, 0x03, 0x52, 0x09, + 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x45, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, + 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, + 0x5f, 0x31, 0x71, 0x62, 0x62, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, + 0x30, 0x32, 0x5f, 0x33, 0x78, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, + 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, + 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, + 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xcc, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, + 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, + 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, + 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x48, 0x04, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x01, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, + 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xf6, 0x07, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, + 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x09, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0b, + 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0d, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xa2, + 0x04, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x30, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, 0x52, 0x0a, 0x6e, + 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x09, + 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x64, + 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x07, 0x52, 0x03, 0x64, + 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x64, 0x73, 0x74, 0x22, 0xa7, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, + 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, + 0x02, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x48, 0x03, + 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, + 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0x4f, 0x0a, + 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, + 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf0, + 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x48, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, + 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, + 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, + 0x64, 0x22, 0x81, 0x08, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x02, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x03, 0x52, + 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0a, + 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, + 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x0b, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, + 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, + 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x4c, 0x69, + 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x56, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x48, + 0x04, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, + 0x70, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x32, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x70, 0x62, + 0x33, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, + 0x62, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x35, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x37, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, 0x62, 0x37, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x31, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, + 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, + 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, + 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, + 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, + 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, + 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, + 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, + 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, + 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, + 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, + 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, + 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, + 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, + 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, + 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, + 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, + 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, + 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x01, 0x52, 0x08, 0x61, + 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x02, 0x52, 0x0a, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x22, 0xe9, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x46, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, + 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, - 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, - 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0b, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x68, - 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x6b, - 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, 0x35, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, 0x64, 0x35, - 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, - 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9a, 0x0d, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, - 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, - 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, - 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, - 0x52, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, - 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, - 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, - 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6d, 0x64, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, - 0x34, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, - 0x70, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, - 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, - 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, - 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x12, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x13, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, - 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, - 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, - 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, - 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, - 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, - 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, - 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x94, 0x07, - 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, + 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xaf, + 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, + 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, + 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, + 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x99, 0x01, 0x0a, + 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaf, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, + 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, + 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x62, 0x61, 0x64, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, + 0x23, 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0xb3, 0x03, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, + 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, + 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, + 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, + 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x02, 0x0a, 0x07, 0x53, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, + 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x69, + 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, + 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, + 0x29, 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6d, 0x61, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, + 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, + 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, + 0x12, 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x68, 0x6f, 0x70, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, + 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, 0x10, 0x0a, 0x12, 0x23, 0x0a, + 0x1f, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x31, + 0x10, 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x1b, + 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0xec, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, + 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x82, 0x03, + 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, + 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, + 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x6f, 0x75, 0x74, 0x5f, + 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x23, 0x0a, + 0x1f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, + 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, + 0x10, 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x63, + 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, + 0x6f, 0x64, 0x65, 0x22, 0x8d, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, + 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, + 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x01, 0x52, 0x08, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x18, 0x6c, 0x65, 0x61, + 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, - 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0x94, 0x07, 0x0a, - 0x0f, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, - 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, - 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x22, 0xca, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, - 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, - 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, - 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, - 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, - 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, - 0x69, 0x6c, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, - 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x5c, 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, - 0x63, 0x74, 0x65, 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, - 0x69, 0x70, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, - 0x0a, 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, - 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x73, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, - 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, - 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, - 0x9d, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, - 0x12, 0x17, 0x0a, 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, - 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, - 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa9, - 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd0, 0x08, 0x0a, 0x0e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, - 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x01, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x44, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x07, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x48, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x08, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x0a, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, - 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, - 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, - 0x0a, 0x10, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, - 0x02, 0x74, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, - 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, - 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, - 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, - 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, - 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, - 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, - 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, - 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, - 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x82, 0x02, - 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, - 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, - 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, - 0x93, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x03, 0x52, 0x09, - 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, - 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, - 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x17, - 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x22, 0xbf, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, - 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, - 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, - 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, - 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, - 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, - 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x05, - 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x22, 0x96, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, - 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x03, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xc9, 0x08, 0x0a, 0x0f, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, - 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, - 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, - 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, - 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, - 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, - 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, - 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x67, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x4c, 0x6c, 0x67, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, - 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x09, 0x42, 0x67, - 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, - 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, - 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, - 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x48, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x48, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, - 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, - 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, - 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, - 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, - 0x65, 0x72, 0x53, 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, - 0x68, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, - 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, + 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, + 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, + 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, + 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, + 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, + 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, + 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, + 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, @@ -93329,6484 +93816,6189 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, - 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, - 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, - 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, - 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, - 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, - 0x76, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, - 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd2, - 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, - 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x48, 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x48, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x48, 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4f, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x48, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, - 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, - 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, - 0x74, 0x65, 0x70, 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, - 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, - 0x65, 0x70, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, - 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, - 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, - 0x6d, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, - 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, - 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, - 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, - 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, - 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, - 0x73, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x12, 0x2f, 0x0a, 0x11, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, - 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x16, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, - 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, - 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, - 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, - 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x5f, 0x0a, 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x70, 0x32, 0x70, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x5d, 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, - 0x70, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x24, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, - 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, - 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, - 0x05, 0x0a, 0x25, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, - 0x0a, 0x14, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x12, - 0x6c, 0x73, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x06, 0x52, 0x10, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x48, 0x07, 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, - 0x0c, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x08, 0x52, 0x0b, 0x66, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x65, - 0x72, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x48, 0x09, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x72, 0x6f, 0x22, 0xd9, 0x06, 0x0a, 0x14, 0x52, 0x73, - 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, - 0x52, 0x0e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, - 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x48, 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, - 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, - 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, - 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6c, 0x6c, 0x22, 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, - 0x61, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, - 0x6e, 0x69, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, - 0x0f, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, - 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, - 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x03, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, - 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, - 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, - 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6c, 0x6c, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, - 0x6e, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, - 0x0a, 0x07, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, - 0x70, 0x45, 0x72, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, - 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, - 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x1a, 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, - 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x5f, 0x69, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, - 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x07, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, - 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, - 0x77, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, - 0x04, 0x74, 0x78, 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, - 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, - 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x22, 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, - 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x48, 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, - 0x75, 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, - 0x67, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x48, 0x0d, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, - 0x61, 0x72, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, - 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x48, 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, - 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, - 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, - 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, - 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, - 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, - 0x63, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, - 0x03, 0x67, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, - 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, - 0x61, 0x72, 0x70, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, - 0x0a, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, - 0x70, 0x70, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, - 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, - 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, - 0x70, 0x76, 0x31, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x61, 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, - 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xae, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, - 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, - 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x42, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, - 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, - 0x66, 0x69, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x48, 0x03, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, - 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, - 0x64, 0x22, 0xa7, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, - 0x35, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x48, 0x02, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, - 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, - 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, - 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, - 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, - 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x48, 0x0b, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, - 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, - 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, - 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, - 0x48, 0x01, 0x52, 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, - 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, - 0x6f, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, - 0x77, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, - 0x63, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, - 0x03, 0x70, 0x68, 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x48, 0x01, 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x70, 0x68, 0x62, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x70, 0x75, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, - 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x40, 0x0a, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x48, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, - 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, - 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x48, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, - 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, - 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, - 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, - 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, - 0x48, 0x07, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x33, 0x48, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, - 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, - 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x34, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x35, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, - 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, - 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, - 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, - 0x73, 0x48, 0x05, 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, - 0x43, 0x77, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, - 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, - 0x52, 0x06, 0x63, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, - 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, - 0x48, 0x0a, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, - 0x52, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, - 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, - 0x79, 0x6e, 0x48, 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, - 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, - 0x75, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, - 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, - 0x72, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, - 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, - 0x79, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, - 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, - 0x67, 0x48, 0x04, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x07, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, - 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x06, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, - 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, - 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x48, 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, - 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, - 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x0b, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, - 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0xdc, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, - 0x05, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, - 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, - 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x46, 0x6c, 0x61, 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, - 0x48, 0x03, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, - 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x48, 0x06, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, - 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, - 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, - 0x72, 0x65, 0x31, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, - 0xb8, 0x07, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, - 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, - 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, - 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x5c, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, - 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, - 0x64, 0x64, 0x72, 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2a, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, - 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, - 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, - 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0xb5, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, - 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, - 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, - 0x65, 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x12, 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, - 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, - 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, - 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, - 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, - 0xa6, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, - 0x03, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0c, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x48, 0x04, 0x52, 0x0b, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x59, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, - 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, - 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x6d, 0x61, 0x78, 0x22, 0xa9, 0x03, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, - 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, - 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x6f, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x22, 0x61, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, - 0x69, 0x78, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, - 0x65, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, - 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, - 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, - 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, - 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, - 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, - 0x03, 0x52, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, - 0x75, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, - 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, - 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, - 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, - 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, - 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, - 0x61, 0x70, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, - 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, - 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, - 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, - 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x48, 0x02, 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x48, 0x04, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x52, - 0x0a, 0x16, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x48, 0x05, 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x22, 0xc6, 0x01, 0x0a, - 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, - 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, - 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x48, 0x01, 0x52, 0x07, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xc1, 0x02, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x48, 0x03, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, - 0x6b, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, - 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, - 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, - 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, - 0x6c, 0x22, 0xa3, 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x36, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x48, 0x02, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, - 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, - 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, - 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, - 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, - 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, - 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, - 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, - 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, - 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, - 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, - 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, - 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x88, 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, - 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, - 0xf1, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, - 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, - 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, - 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, - 0x6c, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, - 0xa0, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, - 0x10, 0x02, 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, - 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, - 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x81, 0x01, 0x0a, - 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, - 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, - 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, - 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, - 0xbb, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, - 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, - 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, - 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, - 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x03, 0x62, 0x67, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, - 0x67, 0x70, 0x48, 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, - 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, - 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, - 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, - 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, - 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, - 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, - 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, - 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, - 0x8f, 0x03, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, - 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, - 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x48, 0x01, 0x52, 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, - 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, - 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, - 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x8f, 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, - 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, - 0x01, 0x52, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, - 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x48, 0x03, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x51, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, - 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, - 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xb2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, - 0x73, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, - 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, - 0x12, 0x16, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xee, 0x05, 0x0a, 0x0e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, - 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, - 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, - 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x05, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, - 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x06, 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, - 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, - 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x30, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, - 0x01, 0x1a, 0x7c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, - 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, - 0x06, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x6c, 0x64, 0x70, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x62, 0x67, 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, - 0x67, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x6c, 0x64, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, - 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, - 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, - 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, - 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, - 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, - 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, - 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, - 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, - 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, - 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, - 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, - 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, - 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, - 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, - 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, - 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, - 0xf7, 0x02, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, - 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, - 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, - 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, - 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, - 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, - 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, - 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, - 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, - 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x48, 0x08, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, - 0x6f, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x03, 0x73, 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, - 0x78, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, - 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, - 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, - 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, - 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, - 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, - 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, - 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, - 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, - 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, - 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, - 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, - 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, - 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, - 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, - 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, - 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, - 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, - 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, - 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, - 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, - 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, - 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, - 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, - 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, - 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, - 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, - 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, - 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, - 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, - 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, - 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, - 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, - 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, - 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, - 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, - 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, - 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, - 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, - 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, - 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, - 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, - 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, - 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, - 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, - 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, - 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, - 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, - 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, - 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, - 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, - 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, - 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, - 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, - 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, - 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, - 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, - 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, - 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, - 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, - 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, - 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, - 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, - 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, - 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, - 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, - 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, - 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, - 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, - 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, - 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, - 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, - 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, - 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, - 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, - 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, - 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, - 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, - 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, - 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, - 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, - 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, - 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, - 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, - 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, - 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, - 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, - 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, - 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, - 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, - 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, - 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, - 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, - 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, - 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, - 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, - 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, - 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, - 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, - 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, - 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, - 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, - 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, - 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, - 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, - 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, - 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, - 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, - 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, - 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x42, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, - 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, - 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, - 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, - 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, - 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, - 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, - 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, - 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x24, 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, - 0x0a, 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, - 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, - 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, - 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, - 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, - 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, - 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, - 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, + 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, + 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, + 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, + 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, + 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, - 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, - 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, - 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, - 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, - 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, - 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, - 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x22, 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, - 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, - 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, - 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, - 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, - 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, - 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0f, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, - 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, - 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, - 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x73, 0x70, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x02, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, - 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, - 0x01, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, - 0x12, 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, - 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, - 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, - 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, - 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, - 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, - 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, - 0x76, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, - 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, - 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, - 0x69, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, - 0x4e, 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, - 0x56, 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, - 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, - 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, - 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, - 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, - 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, - 0x03, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, - 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, - 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x22, 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, - 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, - 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, - 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x22, 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, - 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, - 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x24, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, - 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x17, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, - 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, - 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, - 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x10, 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, - 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, - 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, - 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, - 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, - 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, - 0x07, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, - 0x01, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, - 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, - 0x6f, 0x63, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, - 0x12, 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, - 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, - 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, - 0x0a, 0x11, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, - 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, - 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, - 0x73, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, - 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, - 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, - 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, - 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, - 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, - 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, - 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, - 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, - 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, - 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, - 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x61, 0x73, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, - 0x0e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, - 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, - 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, - 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, - 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, - 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, - 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, - 0x70, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, - 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, + 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, + 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, - 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, + 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, + 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, - 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, - 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xa0, 0x04, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, - 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, - 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, - 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, - 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, + 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, + 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, + 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, + 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, + 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, + 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, + 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, + 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, + 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, + 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, + 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x22, 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, + 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, + 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, + 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, + 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x70, 0x75, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, + 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb4, 0x05, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, + 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, + 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, + 0x69, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, + 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x06, 0x61, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02, + 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x12, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x01, + 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x51, 0x0a, 0x06, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0b, + 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x6b, + 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, 0x35, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, 0x64, 0x35, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, + 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9a, 0x0d, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, + 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, + 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, + 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, + 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, + 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, + 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x64, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, + 0x34, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, + 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x12, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x13, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, + 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, + 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xe2, 0x07, + 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, + 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf4, 0x09, 0x0a, 0x14, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x16, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x78, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x02, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, + 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x04, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, + 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x05, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x79, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, 0x19, + 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xe7, + 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, + 0x18, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, + 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, + 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, + 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, + 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, + 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x8c, + 0x04, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbf, 0x01, + 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, + 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, + 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, + 0x9b, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xde, 0x03, + 0x0a, 0x28, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, - 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, - 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, - 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, - 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x01, 0x52, + 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x74, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, + 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x14, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x64, + 0x0a, 0x2f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x63, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xc4, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x48, 0x01, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x3a, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, + 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xed, 0x02, 0x0a, + 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x16, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, + 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x48, 0x01, 0x52, 0x14, + 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xcc, 0x01, 0x0a, + 0x1e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe2, 0x07, 0x0a, 0x0f, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, + 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, + 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, - 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, - 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x22, 0xca, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, + 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, + 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, + 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, + 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, + 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, + 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, + 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, + 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, + 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, + 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, + 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x5c, + 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, 0x70, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, + 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6e, 0x6f, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x6f, + 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, 0x01, 0x0a, + 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, + 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, 0x17, 0x0a, + 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, + 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x12, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd0, 0x08, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x01, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x44, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x47, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x07, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x08, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x0a, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, + 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, + 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x12, + 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, + 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, + 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, 0x0a, 0x19, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x74, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, 0x74, + 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, + 0x74, 0x6c, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, + 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, + 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, + 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, + 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, + 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x82, 0x02, 0x0a, 0x19, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, + 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, + 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x93, 0x03, 0x0a, + 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, + 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, + 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x03, 0x52, 0x09, 0x73, 0x72, 0x4d, + 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, + 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, + 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, + 0xab, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x17, 0x73, 0x72, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xbf, 0x04, + 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, + 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, + 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x05, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, + 0x96, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, + 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, + 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x03, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, + 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xc9, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, + 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x78, 0x74, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, + 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, + 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, + 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, + 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe6, 0x01, + 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6c, 0x67, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x36, + 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, + 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x61, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, + 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x63, + 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, + 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, + 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, + 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x48, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x62, 0x67, + 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, + 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2a, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, + 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x56, + 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, + 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, + 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, + 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, + 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, + 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, + 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, + 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, + 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, + 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, + 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x65, 0x73, + 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xcd, 0x01, 0x0a, + 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, + 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x65, + 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, + 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, 0xed, 0x07, 0x0a, + 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, + 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, + 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, + 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, + 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, + 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xe2, 0x01, 0x0a, + 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, + 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, + 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, + 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x36, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, + 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x0d, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x76, 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x01, + 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, 0x52, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, + 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, + 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, + 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, + 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, + 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, + 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, + 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, + 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, + 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, + 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, + 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x16, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0a, 0x73, 0x65, + 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x06, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0d, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x11, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5f, 0x0a, + 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x70, 0x32, 0x70, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, + 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x24, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, + 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x5c, + 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, + 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, 0x05, 0x0a, 0x25, + 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, + 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6c, + 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x12, 0x6c, 0x73, 0x70, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x48, 0x07, + 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0c, 0x66, 0x61, + 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x08, 0x52, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x48, 0x09, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, + 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x65, 0x72, 0x6f, 0x22, 0xd9, 0x06, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, + 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x73, + 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x48, 0x09, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, + 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, + 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x22, + 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, 0x0a, + 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, 0x73, + 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, + 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x70, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, + 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, + 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, 0x52, + 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, + 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x75, + 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x1a, 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, + 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, + 0x73, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, + 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, + 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, + 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, + 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, + 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, + 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, + 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, + 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x72, + 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, + 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, 0x08, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x48, + 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x75, 0x64, 0x70, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, 0x67, 0x72, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x48, 0x0d, 0x52, + 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x72, 0x70, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, 0x52, 0x04, 0x69, + 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x48, + 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, 0x06, 0x69, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x1a, + 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, + 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, + 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, + 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, + 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, + 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, + 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, + 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, + 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, 0x70, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x31, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, + 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x70, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xae, 0x02, 0x0a, + 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x32, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, + 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, + 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x22, 0xfe, 0x01, + 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x63, 0x66, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x48, + 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x48, 0x02, 0x52, + 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x48, 0x03, + 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x22, 0xa7, + 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x48, 0x02, 0x52, + 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, + 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x6d, 0x6f, + 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x0b, + 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, 0x64, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, + 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x48, 0x01, 0x52, + 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, + 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, 0x03, 0x70, 0x68, + 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x48, 0x01, + 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x68, 0x62, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, + 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, + 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, + 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x72, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x48, + 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x05, 0x52, + 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, + 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x08, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, + 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x48, 0x06, 0x52, + 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x48, 0x07, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x48, + 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x48, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, 0x52, 0x0b, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, + 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x64, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, + 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, 0x07, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, + 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x73, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x48, 0x05, + 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x63, + 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, 0x52, 0x06, 0x63, + 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, + 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x88, 0x01, + 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x48, 0x0a, 0x52, + 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, + 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x48, + 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, + 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x71, 0x5f, + 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, + 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, + 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, + 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, + 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x52, + 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x04, + 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, + 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, 0x52, 0x0d, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, + 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, 0x0a, 0x6e, 0x50, + 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1a, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x0b, 0x52, + 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x11, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdc, 0x02, 0x0a, + 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, 0x05, 0x0a, 0x09, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x48, 0x03, 0x52, + 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x48, 0x06, 0x52, + 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, + 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x65, 0x69, 0x64, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, 0xb8, 0x07, 0x0a, + 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, + 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, + 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, + 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb5, 0x01, 0x0a, + 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, + 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, + 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, + 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0a, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x06, + 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, 0x06, 0x75, 0x6e, + 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, + 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, + 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x03, 0x0a, + 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x03, 0x52, 0x06, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0c, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x48, 0x04, 0x52, 0x0b, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, + 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, + 0x22, 0xa9, 0x03, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, + 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x02, 0x1a, 0x6f, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, + 0x61, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, + 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, + 0x69, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, + 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, + 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xdd, + 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x22, 0x64, + 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, + 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x91, 0x01, + 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, + 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, + 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x48, + 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, + 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, + 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, + 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, + 0x87, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x02, + 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x04, 0x52, + 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x16, 0x70, + 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x54, 0x61, 0x67, 0x73, 0x48, 0x05, 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, + 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, + 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, + 0x52, 0x07, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, + 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc1, 0x02, + 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x03, 0x52, + 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, + 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x83, + 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x04, + 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0xa3, + 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, + 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, + 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x02, 0x52, + 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, + 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, + 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, + 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, + 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaa, + 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, + 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, 0x0a, 0x0c, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, 0xf1, 0x01, 0x0a, + 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, + 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x48, 0x00, + 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, 0x52, 0x04, 0x6c, + 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, + 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x6c, 0x6c, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, + 0x63, 0x70, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, + 0xc7, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x36, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xa3, 0x01, + 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, + 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, - 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, - 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, + 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xbb, 0x01, 0x0a, + 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, 0x15, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, + 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x62, 0x67, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x48, + 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, + 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, + 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xbd, 0x01, 0x0a, + 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, + 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, + 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, + 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, + 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, + 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, + 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, + 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0x8f, 0x03, 0x0a, + 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4b, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x19, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x01, 0x52, + 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, + 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, + 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x8f, + 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, + 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x03, 0x52, + 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, + 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, 0x68, 0x6f, 0x6c, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x17, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, + 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xee, 0x05, 0x0a, 0x0e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x66, + 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, 0x52, 0x05, 0x62, + 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, + 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x6c, 0x61, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, + 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x6c, + 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, + 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x7c, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, + 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, + 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, + 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, + 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, + 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, + 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, 0x67, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6c, 0x64, 0x70, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, + 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, + 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, + 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, + 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, + 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, + 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, + 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, + 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, + 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xf7, 0x02, 0x0a, + 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, + 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, + 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, + 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x03, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x9b, + 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x08, + 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, + 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x6f, 0x0a, 0x0d, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd4, 0x01, + 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, 0x74, + 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, - 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, + 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, + 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, + 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, + 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, + 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, + 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, + 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, + 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, + 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, + 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, + 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, + 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, + 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, + 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, + 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, 0x13, + 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, + 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, + 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, + 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, + 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, + 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, + 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, + 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, + 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, + 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, + 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, + 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, + 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, + 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, + 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, + 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, + 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, + 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, + 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, + 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, + 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, + 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, + 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, + 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, + 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x18, + 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, + 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, + 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, + 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, + 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, + 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, + 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, 0x6c, + 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, + 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, + 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x0e, + 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, + 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, + 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, + 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, + 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, + 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, + 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, + 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, + 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, + 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, + 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, + 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, + 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, + 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, + 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, + 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, + 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x07, + 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, + 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, + 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, + 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, + 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, + 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, + 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, + 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, + 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, + 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, + 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, + 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, + 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, + 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, + 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, + 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, + 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, + 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, + 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, + 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, + 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, + 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, + 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, + 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, + 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, + 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, + 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0a, + 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, + 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, + 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, + 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, + 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, + 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, + 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x73, + 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, + 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x67, + 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6c, 0x64, + 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, + 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, + 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, + 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, + 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, + 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, + 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, + 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4c, + 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, + 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, 0x0a, + 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, + 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, + 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, + 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe5, + 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, + 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, + 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, + 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, + 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xca, + 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, + 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, + 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, + 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, + 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, + 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0c, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, + 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, + 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, + 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, + 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, + 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, + 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, 0x0a, + 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x68, + 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x22, + 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, 0x18, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x20, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, + 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, + 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, + 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, + 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, + 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x03, 0x0a, 0x17, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, + 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x10, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, + 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, + 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, + 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, + 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, 0x52, 0x10, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, + 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, + 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, + 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, + 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, + 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, + 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, + 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, + 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, + 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, + 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, + 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, + 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, + 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, + 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, + 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, + 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, + 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, + 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, + 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, + 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, + 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, + 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, + 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, + 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x0e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, @@ -99814,7 +100006,7 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -99822,180 +100014,279 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, + 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, - 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, + 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -100005,364 +100296,337 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x04, 0x0a, 0x24, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x53, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, + 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, + 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, + 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, + 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, + 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x35, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -100372,49 +100636,155 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, + 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -100424,150 +100794,818 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, + 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x37, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa0, 0x04, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, + 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, + 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x87, 0x01, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, + 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, + 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, - 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, + 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, + 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, + 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, - 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, + 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, + 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, + 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -100577,106 +101615,47 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, - 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -100685,240 +101664,46 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, + 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, - 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -100928,94 +101713,654 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, + 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, + 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, + 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, - 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, + 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, + 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x03, - 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, + 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x12, + 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, + 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, @@ -101025,789 +102370,462 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, - 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, - 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x50, 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, - 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, - 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, @@ -101817,117 +102835,105 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x2c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -101938,8 +102944,8 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -101948,7 +102954,7 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, @@ -101956,29 +102962,29 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -101988,47 +102994,189 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, - 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, - 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -102038,244 +103186,237 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, - 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, - 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, - 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, - 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, - 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, + 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, + 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, + 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, + 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -102286,7 +103427,7 @@ var file_otg_proto_rawDesc = []byte{ 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, @@ -102294,249 +103435,370 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, - 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, + 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, - 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, + 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, + 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, + 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, @@ -102546,106 +103808,118 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, + 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -102656,8 +103930,176 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, + 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, + 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, @@ -102665,8 +104107,8 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, @@ -102674,27 +104116,27 @@ var file_otg_proto_rawDesc = []byte{ 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -102704,199 +104146,147 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, + 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, @@ -102906,297 +104296,557 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, - 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, + 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, + 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, - 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, + 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, + 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, - 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, + 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x04, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, + 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -103206,99 +104856,54 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x59, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, @@ -103309,8 +104914,8 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, @@ -103318,7 +104923,7 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, @@ -103327,27 +104932,280 @@ var file_otg_proto_rawDesc = []byte{ 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, + 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, + 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -103357,156 +105215,97 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, + 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, + 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, @@ -103516,147 +105315,95 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -103666,309 +105413,770 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, + 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, + 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, + 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, - 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, + 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, - 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, - 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, + 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, + 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x98, 0x01, 0x0a, + 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x04, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, + 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -103980,7 +106188,7 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, @@ -103989,7 +106197,7 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, @@ -103998,10 +106206,10 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, @@ -104009,16 +106217,16 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -104028,50 +106236,154 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x26, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, + 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -104081,71 +106393,41 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, - 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, + 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, + 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, @@ -104159,453 +106441,378 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x22, 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, - 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, - 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, + 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, + 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, + 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, + 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -104613,284 +106820,335 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, + 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, + 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, - 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, - 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, - 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, + 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, + 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, + 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, + 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, + 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, + 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, - 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, - 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, - 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -104905,8 +107163,8 @@ func file_otg_proto_rawDescGZIP() []byte { return file_otg_proto_rawDescData } -var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 305) -var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1047) +var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 312) +var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1072) var file_otg_proto_goTypes = []interface{}{ (LagProtocol_Choice_Enum)(0), // 0: otg.LagProtocol.Choice.Enum (LagPortLacp_ActorActivity_Enum)(0), // 1: otg.LagPortLacp.ActorActivity.Enum @@ -104946,2627 +107204,2685 @@ var file_otg_proto_goTypes = []interface{}{ (BgpRouteTarget_RtType_Enum)(0), // 35: otg.BgpRouteTarget.RtType.Enum (BgpV4RouteRange_NextHopMode_Enum)(0), // 36: otg.BgpV4RouteRange.NextHopMode.Enum (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 37: otg.BgpV4RouteRange.NextHopAddressType.Enum - (BgpV6RouteRange_NextHopMode_Enum)(0), // 38: otg.BgpV6RouteRange.NextHopMode.Enum - (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 39: otg.BgpV6RouteRange.NextHopAddressType.Enum - (BgpSrteV4Policy_NextHopMode_Enum)(0), // 40: otg.BgpSrteV4Policy.NextHopMode.Enum - (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 41: otg.BgpSrteV4Policy.NextHopAddressType.Enum - (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 42: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 43: otg.BgpSrteBindingSubTlv.BindingSidType.Enum - (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 44: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - (BgpSrteSegment_SegmentType_Enum)(0), // 45: otg.BgpSrteSegment.SegmentType.Enum - (BgpSrteV6Policy_NextHopMode_Enum)(0), // 46: otg.BgpSrteV6Policy.NextHopMode.Enum - (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 47: otg.BgpSrteV6Policy.NextHopAddressType.Enum - (BgpV6Peer_AsType_Enum)(0), // 48: otg.BgpV6Peer.AsType.Enum - (BgpV6Peer_AsNumberWidth_Enum)(0), // 49: otg.BgpV6Peer.AsNumberWidth.Enum - (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 50: otg.BgpV6EthernetSegment.ActiveMode.Enum - (BgpV6EvpnEvis_Choice_Enum)(0), // 51: otg.BgpV6EvpnEvis.Choice.Enum - (BgpV6EviVxlan_ReplicationType_Enum)(0), // 52: otg.BgpV6EviVxlan.ReplicationType.Enum - (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 53: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 54: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 55: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - (RsvpEro_PrependNeighborIp_Enum)(0), // 56: otg.RsvpEro.PrependNeighborIp.Enum - (RsvpEroSubobject_Type_Enum)(0), // 57: otg.RsvpEroSubobject.Type.Enum - (RsvpEroSubobject_HopType_Enum)(0), // 58: otg.RsvpEroSubobject.HopType.Enum - (FlowTxRx_Choice_Enum)(0), // 59: otg.FlowTxRx.Choice.Enum - (FlowRouter_Mode_Enum)(0), // 60: otg.FlowRouter.Mode.Enum - (FlowHeader_Choice_Enum)(0), // 61: otg.FlowHeader.Choice.Enum - (FlowIpv4Priority_Choice_Enum)(0), // 62: otg.FlowIpv4Priority.Choice.Enum - (FlowIcmp_Choice_Enum)(0), // 63: otg.FlowIcmp.Choice.Enum - (FlowIcmpv6_Choice_Enum)(0), // 64: otg.FlowIcmpv6.Choice.Enum - (FlowSize_Choice_Enum)(0), // 65: otg.FlowSize.Choice.Enum - (FlowSizeWeightPairs_Choice_Enum)(0), // 66: otg.FlowSizeWeightPairs.Choice.Enum - (FlowSizeWeightPairs_Predefined_Enum)(0), // 67: otg.FlowSizeWeightPairs.Predefined.Enum - (FlowRate_Choice_Enum)(0), // 68: otg.FlowRate.Choice.Enum - (FlowDuration_Choice_Enum)(0), // 69: otg.FlowDuration.Choice.Enum - (FlowDelay_Choice_Enum)(0), // 70: otg.FlowDelay.Choice.Enum - (FlowDurationInterBurstGap_Choice_Enum)(0), // 71: otg.FlowDurationInterBurstGap.Choice.Enum - (FlowLatencyMetrics_Mode_Enum)(0), // 72: otg.FlowLatencyMetrics.Mode.Enum - (FlowRxTxRatio_Choice_Enum)(0), // 73: otg.FlowRxTxRatio.Choice.Enum - (EventRequest_Type_Enum)(0), // 74: otg.EventRequest.Type.Enum - (LldpConnection_Choice_Enum)(0), // 75: otg.LldpConnection.Choice.Enum - (LldpChassisId_Choice_Enum)(0), // 76: otg.LldpChassisId.Choice.Enum - (LldpPortId_Choice_Enum)(0), // 77: otg.LldpPortId.Choice.Enum - (LldpChassisMacSubType_Choice_Enum)(0), // 78: otg.LldpChassisMacSubType.Choice.Enum - (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 79: otg.LldpPortInterfaceNameSubType.Choice.Enum - (LldpSystemName_Choice_Enum)(0), // 80: otg.LldpSystemName.Choice.Enum - (Error_Kind_Enum)(0), // 81: otg.Error.Kind.Enum - (ConfigUpdate_Choice_Enum)(0), // 82: otg.ConfigUpdate.Choice.Enum - (FlowsUpdate_PropertyNames_Enum)(0), // 83: otg.FlowsUpdate.PropertyNames.Enum - (ControlState_Choice_Enum)(0), // 84: otg.ControlState.Choice.Enum - (StatePort_Choice_Enum)(0), // 85: otg.StatePort.Choice.Enum - (StateTraffic_Choice_Enum)(0), // 86: otg.StateTraffic.Choice.Enum - (StateProtocol_Choice_Enum)(0), // 87: otg.StateProtocol.Choice.Enum - (StatePortLink_State_Enum)(0), // 88: otg.StatePortLink.State.Enum - (StatePortCapture_State_Enum)(0), // 89: otg.StatePortCapture.State.Enum - (StateTrafficFlowTransmit_State_Enum)(0), // 90: otg.StateTrafficFlowTransmit.State.Enum - (StateProtocolAll_State_Enum)(0), // 91: otg.StateProtocolAll.State.Enum - (StateProtocolRoute_State_Enum)(0), // 92: otg.StateProtocolRoute.State.Enum - (StateProtocolLacp_Choice_Enum)(0), // 93: otg.StateProtocolLacp.Choice.Enum - (StateProtocolLacpAdmin_State_Enum)(0), // 94: otg.StateProtocolLacpAdmin.State.Enum - (ControlAction_Choice_Enum)(0), // 95: otg.ControlAction.Choice.Enum - (ActionResponse_Choice_Enum)(0), // 96: otg.ActionResponse.Choice.Enum - (ActionProtocol_Choice_Enum)(0), // 97: otg.ActionProtocol.Choice.Enum - (ActionResponseProtocol_Choice_Enum)(0), // 98: otg.ActionResponseProtocol.Choice.Enum - (ActionProtocolIpv4_Choice_Enum)(0), // 99: otg.ActionProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4_Choice_Enum)(0), // 100: otg.ActionResponseProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 101: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - (ActionProtocolIpv6_Choice_Enum)(0), // 102: otg.ActionProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6_Choice_Enum)(0), // 103: otg.ActionResponseProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 104: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - (ActionProtocolBgp_Choice_Enum)(0), // 105: otg.ActionProtocolBgp.Choice.Enum - (ActionProtocolBgpNotification_Choice_Enum)(0), // 106: otg.ActionProtocolBgpNotification.Choice.Enum - (MetricsRequest_Choice_Enum)(0), // 107: otg.MetricsRequest.Choice.Enum - (MetricsResponse_Choice_Enum)(0), // 108: otg.MetricsResponse.Choice.Enum - (PortMetricsRequest_ColumnNames_Enum)(0), // 109: otg.PortMetricsRequest.ColumnNames.Enum - (PortMetric_Link_Enum)(0), // 110: otg.PortMetric.Link.Enum - (PortMetric_Capture_Enum)(0), // 111: otg.PortMetric.Capture.Enum - (PortMetric_Transmit_Enum)(0), // 112: otg.PortMetric.Transmit.Enum - (FlowMetricsRequest_MetricNames_Enum)(0), // 113: otg.FlowMetricsRequest.MetricNames.Enum - (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 114: otg.FlowTaggedMetricsFilter.MetricNames.Enum - (FlowMetric_Transmit_Enum)(0), // 115: otg.FlowMetric.Transmit.Enum - (FlowMetricTagValue_Choice_Enum)(0), // 116: otg.FlowMetricTagValue.Choice.Enum - (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 117: otg.Bgpv4MetricsRequest.ColumnNames.Enum - (Bgpv4Metric_SessionState_Enum)(0), // 118: otg.Bgpv4Metric.SessionState.Enum - (Bgpv4Metric_FsmState_Enum)(0), // 119: otg.Bgpv4Metric.FsmState.Enum - (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 120: otg.Bgpv6MetricsRequest.ColumnNames.Enum - (Bgpv6Metric_SessionState_Enum)(0), // 121: otg.Bgpv6Metric.SessionState.Enum - (Bgpv6Metric_FsmState_Enum)(0), // 122: otg.Bgpv6Metric.FsmState.Enum - (IsisMetricsRequest_ColumnNames_Enum)(0), // 123: otg.IsisMetricsRequest.ColumnNames.Enum - (LagMetricsRequest_ColumnNames_Enum)(0), // 124: otg.LagMetricsRequest.ColumnNames.Enum - (LagMetric_OperStatus_Enum)(0), // 125: otg.LagMetric.OperStatus.Enum - (LacpMetricsRequest_ColumnNames_Enum)(0), // 126: otg.LacpMetricsRequest.ColumnNames.Enum - (LacpMetric_Activity_Enum)(0), // 127: otg.LacpMetric.Activity.Enum - (LacpMetric_Timeout_Enum)(0), // 128: otg.LacpMetric.Timeout.Enum - (LacpMetric_Synchronization_Enum)(0), // 129: otg.LacpMetric.Synchronization.Enum - (LldpMetricsRequest_ColumnNames_Enum)(0), // 130: otg.LldpMetricsRequest.ColumnNames.Enum - (RsvpMetricsRequest_ColumnNames_Enum)(0), // 131: otg.RsvpMetricsRequest.ColumnNames.Enum - (StatesRequest_Choice_Enum)(0), // 132: otg.StatesRequest.Choice.Enum - (StatesResponse_Choice_Enum)(0), // 133: otg.StatesResponse.Choice.Enum - (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 134: otg.BgpPrefixStateRequest.PrefixFilters.Enum - (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 135: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 136: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 137: otg.BgpPrefixIpv4UnicastState.Origin.Enum - (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 138: otg.BgpPrefixIpv6UnicastState.Origin.Enum - (ResultBgpCommunity_Type_Enum)(0), // 139: otg.ResultBgpCommunity.Type.Enum - (ResultBgpAsPathSegment_Type_Enum)(0), // 140: otg.ResultBgpAsPathSegment.Type.Enum - (IsisLspState_PduType_Enum)(0), // 141: otg.IsisLspState.PduType.Enum - (IsisLspV4Prefix_RedistributionType_Enum)(0), // 142: otg.IsisLspV4Prefix.RedistributionType.Enum - (IsisLspV4Prefix_OriginType_Enum)(0), // 143: otg.IsisLspV4Prefix.OriginType.Enum - (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 144: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - (IsisLspV6Prefix_RedistributionType_Enum)(0), // 145: otg.IsisLspV6Prefix.RedistributionType.Enum - (IsisLspV6Prefix_OriginType_Enum)(0), // 146: otg.IsisLspV6Prefix.OriginType.Enum - (LldpNeighborsState_ChassisIdType_Enum)(0), // 147: otg.LldpNeighborsState.ChassisIdType.Enum - (LldpNeighborsState_PortIdType_Enum)(0), // 148: otg.LldpNeighborsState.PortIdType.Enum - (LldpCapabilityState_CapabilityName_Enum)(0), // 149: otg.LldpCapabilityState.CapabilityName.Enum - (RsvpLspState_SessionStatus_Enum)(0), // 150: otg.RsvpLspState.SessionStatus.Enum - (RsvpLspState_LastFlapReason_Enum)(0), // 151: otg.RsvpLspState.LastFlapReason.Enum - (RsvpLspIpv4Ero_Type_Enum)(0), // 152: otg.RsvpLspIpv4Ero.Type.Enum - (PatternFlowEthernetDst_Choice_Enum)(0), // 153: otg.PatternFlowEthernetDst.Choice.Enum - (PatternFlowEthernetSrc_Choice_Enum)(0), // 154: otg.PatternFlowEthernetSrc.Choice.Enum - (PatternFlowEthernetEtherType_Choice_Enum)(0), // 155: otg.PatternFlowEthernetEtherType.Choice.Enum - (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 156: otg.PatternFlowEthernetPfcQueue.Choice.Enum - (PatternFlowVlanPriority_Choice_Enum)(0), // 157: otg.PatternFlowVlanPriority.Choice.Enum - (PatternFlowVlanCfi_Choice_Enum)(0), // 158: otg.PatternFlowVlanCfi.Choice.Enum - (PatternFlowVlanId_Choice_Enum)(0), // 159: otg.PatternFlowVlanId.Choice.Enum - (PatternFlowVlanTpid_Choice_Enum)(0), // 160: otg.PatternFlowVlanTpid.Choice.Enum - (PatternFlowVxlanFlags_Choice_Enum)(0), // 161: otg.PatternFlowVxlanFlags.Choice.Enum - (PatternFlowVxlanReserved0_Choice_Enum)(0), // 162: otg.PatternFlowVxlanReserved0.Choice.Enum - (PatternFlowVxlanVni_Choice_Enum)(0), // 163: otg.PatternFlowVxlanVni.Choice.Enum - (PatternFlowVxlanReserved1_Choice_Enum)(0), // 164: otg.PatternFlowVxlanReserved1.Choice.Enum - (PatternFlowIpv4Version_Choice_Enum)(0), // 165: otg.PatternFlowIpv4Version.Choice.Enum - (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 166: otg.PatternFlowIpv4HeaderLength.Choice.Enum - (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 167: otg.PatternFlowIpv4TotalLength.Choice.Enum - (PatternFlowIpv4Identification_Choice_Enum)(0), // 168: otg.PatternFlowIpv4Identification.Choice.Enum - (PatternFlowIpv4Reserved_Choice_Enum)(0), // 169: otg.PatternFlowIpv4Reserved.Choice.Enum - (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 170: otg.PatternFlowIpv4DontFragment.Choice.Enum - (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 171: otg.PatternFlowIpv4MoreFragments.Choice.Enum - (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 172: otg.PatternFlowIpv4FragmentOffset.Choice.Enum - (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 173: otg.PatternFlowIpv4TimeToLive.Choice.Enum - (PatternFlowIpv4Protocol_Choice_Enum)(0), // 174: otg.PatternFlowIpv4Protocol.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 175: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 176: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - (PatternFlowIpv4Src_Choice_Enum)(0), // 177: otg.PatternFlowIpv4Src.Choice.Enum - (PatternFlowIpv4Dst_Choice_Enum)(0), // 178: otg.PatternFlowIpv4Dst.Choice.Enum - (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 179: otg.PatternFlowIpv4PriorityRaw.Choice.Enum - (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 180: otg.PatternFlowIpv4DscpPhb.Choice.Enum - (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 181: otg.PatternFlowIpv4DscpEcn.Choice.Enum - (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 182: otg.PatternFlowIpv4TosPrecedence.Choice.Enum - (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 183: otg.PatternFlowIpv4TosDelay.Choice.Enum - (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 184: otg.PatternFlowIpv4TosThroughput.Choice.Enum - (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 185: otg.PatternFlowIpv4TosReliability.Choice.Enum - (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 186: otg.PatternFlowIpv4TosMonetary.Choice.Enum - (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 187: otg.PatternFlowIpv4TosUnused.Choice.Enum - (PatternFlowIpv6Version_Choice_Enum)(0), // 188: otg.PatternFlowIpv6Version.Choice.Enum - (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 189: otg.PatternFlowIpv6TrafficClass.Choice.Enum - (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 190: otg.PatternFlowIpv6FlowLabel.Choice.Enum - (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 191: otg.PatternFlowIpv6PayloadLength.Choice.Enum - (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 192: otg.PatternFlowIpv6NextHeader.Choice.Enum - (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 193: otg.PatternFlowIpv6HopLimit.Choice.Enum - (PatternFlowIpv6Src_Choice_Enum)(0), // 194: otg.PatternFlowIpv6Src.Choice.Enum - (PatternFlowIpv6Dst_Choice_Enum)(0), // 195: otg.PatternFlowIpv6Dst.Choice.Enum - (PatternFlowPfcPauseDst_Choice_Enum)(0), // 196: otg.PatternFlowPfcPauseDst.Choice.Enum - (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 197: otg.PatternFlowPfcPauseSrc.Choice.Enum - (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 198: otg.PatternFlowPfcPauseEtherType.Choice.Enum - (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 199: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 200: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 201: otg.PatternFlowPfcPausePauseClass0.Choice.Enum - (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 202: otg.PatternFlowPfcPausePauseClass1.Choice.Enum - (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 203: otg.PatternFlowPfcPausePauseClass2.Choice.Enum - (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 204: otg.PatternFlowPfcPausePauseClass3.Choice.Enum - (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 205: otg.PatternFlowPfcPausePauseClass4.Choice.Enum - (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 206: otg.PatternFlowPfcPausePauseClass5.Choice.Enum - (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 207: otg.PatternFlowPfcPausePauseClass6.Choice.Enum - (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 208: otg.PatternFlowPfcPausePauseClass7.Choice.Enum - (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 209: otg.PatternFlowEthernetPauseDst.Choice.Enum - (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 210: otg.PatternFlowEthernetPauseSrc.Choice.Enum - (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 211: otg.PatternFlowEthernetPauseEtherType.Choice.Enum - (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 212: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 213: otg.PatternFlowEthernetPauseTime.Choice.Enum - (PatternFlowTcpSrcPort_Choice_Enum)(0), // 214: otg.PatternFlowTcpSrcPort.Choice.Enum - (PatternFlowTcpDstPort_Choice_Enum)(0), // 215: otg.PatternFlowTcpDstPort.Choice.Enum - (PatternFlowTcpSeqNum_Choice_Enum)(0), // 216: otg.PatternFlowTcpSeqNum.Choice.Enum - (PatternFlowTcpAckNum_Choice_Enum)(0), // 217: otg.PatternFlowTcpAckNum.Choice.Enum - (PatternFlowTcpDataOffset_Choice_Enum)(0), // 218: otg.PatternFlowTcpDataOffset.Choice.Enum - (PatternFlowTcpEcnNs_Choice_Enum)(0), // 219: otg.PatternFlowTcpEcnNs.Choice.Enum - (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 220: otg.PatternFlowTcpEcnCwr.Choice.Enum - (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 221: otg.PatternFlowTcpEcnEcho.Choice.Enum - (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 222: otg.PatternFlowTcpCtlUrg.Choice.Enum - (PatternFlowTcpCtlAck_Choice_Enum)(0), // 223: otg.PatternFlowTcpCtlAck.Choice.Enum - (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 224: otg.PatternFlowTcpCtlPsh.Choice.Enum - (PatternFlowTcpCtlRst_Choice_Enum)(0), // 225: otg.PatternFlowTcpCtlRst.Choice.Enum - (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 226: otg.PatternFlowTcpCtlSyn.Choice.Enum - (PatternFlowTcpCtlFin_Choice_Enum)(0), // 227: otg.PatternFlowTcpCtlFin.Choice.Enum - (PatternFlowTcpWindow_Choice_Enum)(0), // 228: otg.PatternFlowTcpWindow.Choice.Enum - (PatternFlowUdpSrcPort_Choice_Enum)(0), // 229: otg.PatternFlowUdpSrcPort.Choice.Enum - (PatternFlowUdpDstPort_Choice_Enum)(0), // 230: otg.PatternFlowUdpDstPort.Choice.Enum - (PatternFlowUdpLength_Choice_Enum)(0), // 231: otg.PatternFlowUdpLength.Choice.Enum - (PatternFlowUdpChecksum_Choice_Enum)(0), // 232: otg.PatternFlowUdpChecksum.Choice.Enum - (PatternFlowUdpChecksum_Generated_Enum)(0), // 233: otg.PatternFlowUdpChecksum.Generated.Enum - (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 234: otg.PatternFlowGreChecksumPresent.Choice.Enum - (PatternFlowGreReserved0_Choice_Enum)(0), // 235: otg.PatternFlowGreReserved0.Choice.Enum - (PatternFlowGreVersion_Choice_Enum)(0), // 236: otg.PatternFlowGreVersion.Choice.Enum - (PatternFlowGreProtocol_Choice_Enum)(0), // 237: otg.PatternFlowGreProtocol.Choice.Enum - (PatternFlowGreChecksum_Choice_Enum)(0), // 238: otg.PatternFlowGreChecksum.Choice.Enum - (PatternFlowGreChecksum_Generated_Enum)(0), // 239: otg.PatternFlowGreChecksum.Generated.Enum - (PatternFlowGreReserved1_Choice_Enum)(0), // 240: otg.PatternFlowGreReserved1.Choice.Enum - (PatternFlowGtpv1Version_Choice_Enum)(0), // 241: otg.PatternFlowGtpv1Version.Choice.Enum - (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 242: otg.PatternFlowGtpv1ProtocolType.Choice.Enum - (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 243: otg.PatternFlowGtpv1Reserved.Choice.Enum - (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 244: otg.PatternFlowGtpv1EFlag.Choice.Enum - (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 245: otg.PatternFlowGtpv1SFlag.Choice.Enum - (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 246: otg.PatternFlowGtpv1PnFlag.Choice.Enum - (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 247: otg.PatternFlowGtpv1MessageType.Choice.Enum - (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 248: otg.PatternFlowGtpv1MessageLength.Choice.Enum - (PatternFlowGtpv1Teid_Choice_Enum)(0), // 249: otg.PatternFlowGtpv1Teid.Choice.Enum - (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 250: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 251: otg.PatternFlowGtpv1NPduNumber.Choice.Enum - (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 252: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 253: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 254: otg.PatternFlowGtpExtensionContents.Choice.Enum - (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 255: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - (PatternFlowGtpv2Version_Choice_Enum)(0), // 256: otg.PatternFlowGtpv2Version.Choice.Enum - (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 257: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 258: otg.PatternFlowGtpv2TeidFlag.Choice.Enum - (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 259: otg.PatternFlowGtpv2Spare1.Choice.Enum - (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 260: otg.PatternFlowGtpv2MessageType.Choice.Enum - (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 261: otg.PatternFlowGtpv2MessageLength.Choice.Enum - (PatternFlowGtpv2Teid_Choice_Enum)(0), // 262: otg.PatternFlowGtpv2Teid.Choice.Enum - (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 263: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 264: otg.PatternFlowGtpv2Spare2.Choice.Enum - (PatternFlowArpHardwareType_Choice_Enum)(0), // 265: otg.PatternFlowArpHardwareType.Choice.Enum - (PatternFlowArpProtocolType_Choice_Enum)(0), // 266: otg.PatternFlowArpProtocolType.Choice.Enum - (PatternFlowArpHardwareLength_Choice_Enum)(0), // 267: otg.PatternFlowArpHardwareLength.Choice.Enum - (PatternFlowArpProtocolLength_Choice_Enum)(0), // 268: otg.PatternFlowArpProtocolLength.Choice.Enum - (PatternFlowArpOperation_Choice_Enum)(0), // 269: otg.PatternFlowArpOperation.Choice.Enum - (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 270: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 271: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 272: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 273: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - (PatternFlowIcmpEchoType_Choice_Enum)(0), // 274: otg.PatternFlowIcmpEchoType.Choice.Enum - (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 275: otg.PatternFlowIcmpEchoCode.Choice.Enum - (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 276: otg.PatternFlowIcmpEchoChecksum.Choice.Enum - (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 277: otg.PatternFlowIcmpEchoChecksum.Generated.Enum - (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 278: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 279: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 280: otg.PatternFlowIcmpCommonChecksum.Choice.Enum - (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 281: otg.PatternFlowIcmpCommonChecksum.Generated.Enum - (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 282: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 283: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 284: otg.PatternFlowIcmpv6EchoType.Choice.Enum - (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 285: otg.PatternFlowIcmpv6EchoCode.Choice.Enum - (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 286: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 287: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 288: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 289: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 290: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 291: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - (PatternFlowPppAddress_Choice_Enum)(0), // 292: otg.PatternFlowPppAddress.Choice.Enum - (PatternFlowPppControl_Choice_Enum)(0), // 293: otg.PatternFlowPppControl.Choice.Enum - (PatternFlowPppProtocolType_Choice_Enum)(0), // 294: otg.PatternFlowPppProtocolType.Choice.Enum - (PatternFlowIgmpv1Version_Choice_Enum)(0), // 295: otg.PatternFlowIgmpv1Version.Choice.Enum - (PatternFlowIgmpv1Type_Choice_Enum)(0), // 296: otg.PatternFlowIgmpv1Type.Choice.Enum - (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 297: otg.PatternFlowIgmpv1Unused.Choice.Enum - (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 298: otg.PatternFlowIgmpv1Checksum.Choice.Enum - (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 299: otg.PatternFlowIgmpv1Checksum.Generated.Enum - (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 300: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - (PatternFlowMplsLabel_Choice_Enum)(0), // 301: otg.PatternFlowMplsLabel.Choice.Enum - (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 302: otg.PatternFlowMplsTrafficClass.Choice.Enum - (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 303: otg.PatternFlowMplsBottomOfStack.Choice.Enum - (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 304: otg.PatternFlowMplsTimeToLive.Choice.Enum - (*Config)(nil), // 305: otg.Config - (*ConfigOptions)(nil), // 306: otg.ConfigOptions - (*Port)(nil), // 307: otg.Port - (*PortOptions)(nil), // 308: otg.PortOptions - (*Lag)(nil), // 309: otg.Lag - (*LagPort)(nil), // 310: otg.LagPort - (*LagProtocol)(nil), // 311: otg.LagProtocol - (*LagProtocolStatic)(nil), // 312: otg.LagProtocolStatic - (*LagProtocolLacp)(nil), // 313: otg.LagProtocolLacp - (*LagPortLacp)(nil), // 314: otg.LagPortLacp - (*DeviceEthernetBase)(nil), // 315: otg.DeviceEthernetBase - (*DeviceEthernet)(nil), // 316: otg.DeviceEthernet - (*EthernetConnection)(nil), // 317: otg.EthernetConnection - (*DeviceVlan)(nil), // 318: otg.DeviceVlan - (*DeviceIpv4)(nil), // 319: otg.DeviceIpv4 - (*DeviceIpv4Loopback)(nil), // 320: otg.DeviceIpv4Loopback - (*DeviceIpv4GatewayMAC)(nil), // 321: otg.DeviceIpv4GatewayMAC - (*DeviceIpv6)(nil), // 322: otg.DeviceIpv6 - (*DeviceIpv6Loopback)(nil), // 323: otg.DeviceIpv6Loopback - (*DeviceIpv6GatewayMAC)(nil), // 324: otg.DeviceIpv6GatewayMAC - (*Layer1)(nil), // 325: otg.Layer1 - (*Layer1AutoNegotiation)(nil), // 326: otg.Layer1AutoNegotiation - (*Layer1FlowControl)(nil), // 327: otg.Layer1FlowControl - (*Layer1Ieee8023X)(nil), // 328: otg.Layer1Ieee8023x - (*Layer1Ieee8021Qbb)(nil), // 329: otg.Layer1Ieee8021qbb - (*Capture)(nil), // 330: otg.Capture - (*CaptureFilter)(nil), // 331: otg.CaptureFilter - (*CaptureCustom)(nil), // 332: otg.CaptureCustom - (*CaptureField)(nil), // 333: otg.CaptureField - (*CaptureEthernet)(nil), // 334: otg.CaptureEthernet - (*CaptureVlan)(nil), // 335: otg.CaptureVlan - (*CaptureIpv4)(nil), // 336: otg.CaptureIpv4 - (*CaptureIpv6)(nil), // 337: otg.CaptureIpv6 - (*Device)(nil), // 338: otg.Device - (*ProtocolOptions)(nil), // 339: otg.ProtocolOptions - (*DeviceIsisRouter)(nil), // 340: otg.DeviceIsisRouter - (*DeviceIsisMultiInstance)(nil), // 341: otg.DeviceIsisMultiInstance - (*IsisInterface)(nil), // 342: otg.IsisInterface - (*IsisInterfaceLevel)(nil), // 343: otg.IsisInterfaceLevel - (*IsisMT)(nil), // 344: otg.IsisMT - (*LinkStateTE)(nil), // 345: otg.LinkStateTE - (*LinkStatepriorityBandwidths)(nil), // 346: otg.LinkStatepriorityBandwidths - (*IsisInterfaceAuthentication)(nil), // 347: otg.IsisInterfaceAuthentication - (*IsisInterfaceAdvanced)(nil), // 348: otg.IsisInterfaceAdvanced - (*IsisInterfaceLinkProtection)(nil), // 349: otg.IsisInterfaceLinkProtection - (*IsisBasic)(nil), // 350: otg.IsisBasic - (*IsisAdvanced)(nil), // 351: otg.IsisAdvanced - (*IsisAuthentication)(nil), // 352: otg.IsisAuthentication - (*IsisAuthenticationBase)(nil), // 353: otg.IsisAuthenticationBase - (*IsisV4RouteRange)(nil), // 354: otg.IsisV4RouteRange - (*V4RouteAddress)(nil), // 355: otg.V4RouteAddress - (*V6RouteAddress)(nil), // 356: otg.V6RouteAddress - (*MACRouteAddress)(nil), // 357: otg.MACRouteAddress - (*IsisV6RouteRange)(nil), // 358: otg.IsisV6RouteRange - (*DeviceBgpRouter)(nil), // 359: otg.DeviceBgpRouter - (*DeviceBgpMessageHeaderError)(nil), // 360: otg.DeviceBgpMessageHeaderError - (*DeviceBgpOpenMessageError)(nil), // 361: otg.DeviceBgpOpenMessageError - (*DeviceBgpUpdateMessageError)(nil), // 362: otg.DeviceBgpUpdateMessageError - (*DeviceBgpHoldTimerExpired)(nil), // 363: otg.DeviceBgpHoldTimerExpired - (*DeviceBgpFiniteStateMachineError)(nil), // 364: otg.DeviceBgpFiniteStateMachineError - (*DeviceBgpCeaseError)(nil), // 365: otg.DeviceBgpCeaseError - (*DeviceBgpCustomError)(nil), // 366: otg.DeviceBgpCustomError - (*BgpV4Peer)(nil), // 367: otg.BgpV4Peer - (*BgpV4Interface)(nil), // 368: otg.BgpV4Interface - (*BgpV4EthernetSegment)(nil), // 369: otg.BgpV4EthernetSegment - (*BgpEthernetSegmentDfElection)(nil), // 370: otg.BgpEthernetSegmentDfElection - (*BgpRouteAdvanced)(nil), // 371: otg.BgpRouteAdvanced - (*BgpCommunity)(nil), // 372: otg.BgpCommunity - (*BgpExtCommunity)(nil), // 373: otg.BgpExtCommunity - (*BgpAsPath)(nil), // 374: otg.BgpAsPath - (*BgpAsPathSegment)(nil), // 375: otg.BgpAsPathSegment - (*BgpV4EvpnEvis)(nil), // 376: otg.BgpV4EvpnEvis - (*BgpV4EviVxlan)(nil), // 377: otg.BgpV4EviVxlan - (*BgpV4EviVxlanBroadcastDomain)(nil), // 378: otg.BgpV4EviVxlanBroadcastDomain - (*BgpCMacIpRange)(nil), // 379: otg.BgpCMacIpRange - (*BgpRouteDistinguisher)(nil), // 380: otg.BgpRouteDistinguisher - (*BgpRouteTarget)(nil), // 381: otg.BgpRouteTarget - (*BgpAdvanced)(nil), // 382: otg.BgpAdvanced - (*BgpCapability)(nil), // 383: otg.BgpCapability - (*BgpLearnedInformationFilter)(nil), // 384: otg.BgpLearnedInformationFilter - (*BgpV4RouteRange)(nil), // 385: otg.BgpV4RouteRange - (*BgpAddPath)(nil), // 386: otg.BgpAddPath - (*BgpV6RouteRange)(nil), // 387: otg.BgpV6RouteRange - (*BgpSrteV4Policy)(nil), // 388: otg.BgpSrteV4Policy - (*BgpSrteV4TunnelTlv)(nil), // 389: otg.BgpSrteV4TunnelTlv - (*BgpSrteRemoteEndpointSubTlv)(nil), // 390: otg.BgpSrteRemoteEndpointSubTlv - (*BgpSrteColorSubTlv)(nil), // 391: otg.BgpSrteColorSubTlv - (*BgpSrteBindingSubTlv)(nil), // 392: otg.BgpSrteBindingSubTlv - (*BgpSrtePreferenceSubTlv)(nil), // 393: otg.BgpSrtePreferenceSubTlv - (*BgpSrtePolicyPrioritySubTlv)(nil), // 394: otg.BgpSrtePolicyPrioritySubTlv - (*BgpSrtePolicyNameSubTlv)(nil), // 395: otg.BgpSrtePolicyNameSubTlv - (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 396: otg.BgpSrteExplicitNullLabelPolicySubTlv - (*BgpSrteSegmentList)(nil), // 397: otg.BgpSrteSegmentList - (*BgpSrteSegment)(nil), // 398: otg.BgpSrteSegment - (*BgpSrteSrMplsSid)(nil), // 399: otg.BgpSrteSrMplsSid - (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 400: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - (*BgpSrteSegmentATypeSubTlv)(nil), // 401: otg.BgpSrteSegmentATypeSubTlv - (*BgpSrteSegmentBTypeSubTlv)(nil), // 402: otg.BgpSrteSegmentBTypeSubTlv - (*BgpSrteSegmentCTypeSubTlv)(nil), // 403: otg.BgpSrteSegmentCTypeSubTlv - (*BgpSrteSegmentDTypeSubTlv)(nil), // 404: otg.BgpSrteSegmentDTypeSubTlv - (*BgpSrteSegmentETypeSubTlv)(nil), // 405: otg.BgpSrteSegmentETypeSubTlv - (*BgpSrteSegmentFTypeSubTlv)(nil), // 406: otg.BgpSrteSegmentFTypeSubTlv - (*BgpSrteSegmentGTypeSubTlv)(nil), // 407: otg.BgpSrteSegmentGTypeSubTlv - (*BgpSrteSegmentHTypeSubTlv)(nil), // 408: otg.BgpSrteSegmentHTypeSubTlv - (*BgpSrteSegmentITypeSubTlv)(nil), // 409: otg.BgpSrteSegmentITypeSubTlv - (*BgpSrteSegmentJTypeSubTlv)(nil), // 410: otg.BgpSrteSegmentJTypeSubTlv - (*BgpSrteSegmentKTypeSubTlv)(nil), // 411: otg.BgpSrteSegmentKTypeSubTlv - (*BgpSrteV6Policy)(nil), // 412: otg.BgpSrteV6Policy - (*BgpSrteV6TunnelTlv)(nil), // 413: otg.BgpSrteV6TunnelTlv - (*BgpGracefulRestart)(nil), // 414: otg.BgpGracefulRestart - (*BgpV6Peer)(nil), // 415: otg.BgpV6Peer - (*BgpV6Interface)(nil), // 416: otg.BgpV6Interface - (*BgpV6SegmentRouting)(nil), // 417: otg.BgpV6SegmentRouting - (*BgpV6EthernetSegment)(nil), // 418: otg.BgpV6EthernetSegment - (*BgpV6EvpnEvis)(nil), // 419: otg.BgpV6EvpnEvis - (*BgpV6EviVxlan)(nil), // 420: otg.BgpV6EviVxlan - (*BgpV6EviVxlanBroadcastDomain)(nil), // 421: otg.BgpV6EviVxlanBroadcastDomain - (*DeviceVxlan)(nil), // 422: otg.DeviceVxlan - (*VxlanV4Tunnel)(nil), // 423: otg.VxlanV4Tunnel - (*VxlanV6Tunnel)(nil), // 424: otg.VxlanV6Tunnel - (*VxlanV4TunnelDestinationIPMode)(nil), // 425: otg.VxlanV4TunnelDestinationIPMode - (*VxlanV6TunnelDestinationIPMode)(nil), // 426: otg.VxlanV6TunnelDestinationIPMode - (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 427: otg.VxlanV4TunnelDestinationIPModeUnicast - (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 428: otg.VxlanV6TunnelDestinationIPModeUnicast - (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 429: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 430: otg.VxlanV4TunnelDestinationIPModeUnicastVtep - (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 431: otg.VxlanV6TunnelDestinationIPModeUnicastVtep - (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 432: otg.VxlanV4TunnelDestinationIPModeMulticast - (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 433: otg.VxlanV6TunnelDestinationIPModeMulticast - (*DeviceRsvp)(nil), // 434: otg.DeviceRsvp - (*RsvpIpv4Interface)(nil), // 435: otg.RsvpIpv4Interface - (*RsvpLspIpv4Interface)(nil), // 436: otg.RsvpLspIpv4Interface - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 437: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 438: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - (*RsvpSessionAttribute)(nil), // 439: otg.RsvpSessionAttribute - (*RsvpResourceAffinities)(nil), // 440: otg.RsvpResourceAffinities - (*RsvpTspec)(nil), // 441: otg.RsvpTspec - (*RsvpFastReroute)(nil), // 442: otg.RsvpFastReroute - (*RsvpEro)(nil), // 443: otg.RsvpEro - (*RsvpEroSubobject)(nil), // 444: otg.RsvpEroSubobject - (*Flow)(nil), // 445: otg.Flow - (*FlowTxRx)(nil), // 446: otg.FlowTxRx - (*FlowPort)(nil), // 447: otg.FlowPort - (*FlowRouter)(nil), // 448: otg.FlowRouter - (*FlowHeader)(nil), // 449: otg.FlowHeader - (*FlowCustom)(nil), // 450: otg.FlowCustom - (*FlowCustomMetricTag)(nil), // 451: otg.FlowCustomMetricTag - (*FlowEthernet)(nil), // 452: otg.FlowEthernet - (*FlowVlan)(nil), // 453: otg.FlowVlan - (*FlowVxlan)(nil), // 454: otg.FlowVxlan - (*FlowIpv4)(nil), // 455: otg.FlowIpv4 - (*FlowIpv4Priority)(nil), // 456: otg.FlowIpv4Priority - (*FlowIpv4Dscp)(nil), // 457: otg.FlowIpv4Dscp - (*FlowIpv4Tos)(nil), // 458: otg.FlowIpv4Tos - (*FlowIpv6)(nil), // 459: otg.FlowIpv6 - (*FlowPfcPause)(nil), // 460: otg.FlowPfcPause - (*FlowEthernetPause)(nil), // 461: otg.FlowEthernetPause - (*FlowTcp)(nil), // 462: otg.FlowTcp - (*FlowUdp)(nil), // 463: otg.FlowUdp - (*FlowGre)(nil), // 464: otg.FlowGre - (*FlowGtpv1)(nil), // 465: otg.FlowGtpv1 - (*FlowGtpExtension)(nil), // 466: otg.FlowGtpExtension - (*FlowGtpv2)(nil), // 467: otg.FlowGtpv2 - (*FlowArp)(nil), // 468: otg.FlowArp - (*FlowIcmp)(nil), // 469: otg.FlowIcmp - (*FlowIcmpEcho)(nil), // 470: otg.FlowIcmpEcho - (*FlowIcmpv6)(nil), // 471: otg.FlowIcmpv6 - (*FlowIcmpv6Echo)(nil), // 472: otg.FlowIcmpv6Echo - (*FlowPpp)(nil), // 473: otg.FlowPpp - (*FlowIgmpv1)(nil), // 474: otg.FlowIgmpv1 - (*FlowMpls)(nil), // 475: otg.FlowMpls - (*FlowSize)(nil), // 476: otg.FlowSize - (*FlowSizeIncrement)(nil), // 477: otg.FlowSizeIncrement - (*FlowSizeRandom)(nil), // 478: otg.FlowSizeRandom - (*FlowSizeWeightPairs)(nil), // 479: otg.FlowSizeWeightPairs - (*FlowSizeWeightPairsCustom)(nil), // 480: otg.FlowSizeWeightPairsCustom - (*FlowRate)(nil), // 481: otg.FlowRate - (*FlowDuration)(nil), // 482: otg.FlowDuration - (*FlowContinuous)(nil), // 483: otg.FlowContinuous - (*FlowDelay)(nil), // 484: otg.FlowDelay - (*FlowFixedPackets)(nil), // 485: otg.FlowFixedPackets - (*FlowFixedSeconds)(nil), // 486: otg.FlowFixedSeconds - (*FlowBurst)(nil), // 487: otg.FlowBurst - (*FlowDurationInterBurstGap)(nil), // 488: otg.FlowDurationInterBurstGap - (*FlowMetrics)(nil), // 489: otg.FlowMetrics - (*FlowLatencyMetrics)(nil), // 490: otg.FlowLatencyMetrics - (*FlowPredefinedTags)(nil), // 491: otg.FlowPredefinedTags - (*FlowRxTxRatio)(nil), // 492: otg.FlowRxTxRatio - (*FlowRxTxRatioRxCount)(nil), // 493: otg.FlowRxTxRatioRxCount - (*Event)(nil), // 494: otg.Event - (*EventRxRateThreshold)(nil), // 495: otg.EventRxRateThreshold - (*EventLink)(nil), // 496: otg.EventLink - (*EventRouteAdvertiseWithdraw)(nil), // 497: otg.EventRouteAdvertiseWithdraw - (*EventRequest)(nil), // 498: otg.EventRequest - (*EventSubscription)(nil), // 499: otg.EventSubscription - (*Lldp)(nil), // 500: otg.Lldp - (*LldpConnection)(nil), // 501: otg.LldpConnection - (*LldpChassisId)(nil), // 502: otg.LldpChassisId - (*LldpPortId)(nil), // 503: otg.LldpPortId - (*LldpChassisMacSubType)(nil), // 504: otg.LldpChassisMacSubType - (*LldpPortInterfaceNameSubType)(nil), // 505: otg.LldpPortInterfaceNameSubType - (*LldpSystemName)(nil), // 506: otg.LldpSystemName - (*Error)(nil), // 507: otg.Error - (*Warning)(nil), // 508: otg.Warning - (*ConfigUpdate)(nil), // 509: otg.ConfigUpdate - (*FlowsUpdate)(nil), // 510: otg.FlowsUpdate - (*ControlState)(nil), // 511: otg.ControlState - (*StatePort)(nil), // 512: otg.StatePort - (*StateTraffic)(nil), // 513: otg.StateTraffic - (*StateProtocol)(nil), // 514: otg.StateProtocol - (*StatePortLink)(nil), // 515: otg.StatePortLink - (*StatePortCapture)(nil), // 516: otg.StatePortCapture - (*StateTrafficFlowTransmit)(nil), // 517: otg.StateTrafficFlowTransmit - (*StateProtocolAll)(nil), // 518: otg.StateProtocolAll - (*StateProtocolRoute)(nil), // 519: otg.StateProtocolRoute - (*StateProtocolLacp)(nil), // 520: otg.StateProtocolLacp - (*StateProtocolLacpAdmin)(nil), // 521: otg.StateProtocolLacpAdmin - (*ControlAction)(nil), // 522: otg.ControlAction - (*ControlActionResponse)(nil), // 523: otg.ControlActionResponse - (*ActionResponse)(nil), // 524: otg.ActionResponse - (*ActionProtocol)(nil), // 525: otg.ActionProtocol - (*ActionResponseProtocol)(nil), // 526: otg.ActionResponseProtocol - (*ActionProtocolIpv4)(nil), // 527: otg.ActionProtocolIpv4 - (*ActionResponseProtocolIpv4)(nil), // 528: otg.ActionResponseProtocolIpv4 - (*ActionProtocolIpv4Ping)(nil), // 529: otg.ActionProtocolIpv4Ping - (*ActionProtocolIpv4PingRequest)(nil), // 530: otg.ActionProtocolIpv4PingRequest - (*ActionResponseProtocolIpv4Ping)(nil), // 531: otg.ActionResponseProtocolIpv4Ping - (*ActionResponseProtocolIpv4PingResponse)(nil), // 532: otg.ActionResponseProtocolIpv4PingResponse - (*ActionProtocolIpv6)(nil), // 533: otg.ActionProtocolIpv6 - (*ActionResponseProtocolIpv6)(nil), // 534: otg.ActionResponseProtocolIpv6 - (*ActionProtocolIpv6Ping)(nil), // 535: otg.ActionProtocolIpv6Ping - (*ActionProtocolIpv6PingRequest)(nil), // 536: otg.ActionProtocolIpv6PingRequest - (*ActionResponseProtocolIpv6Ping)(nil), // 537: otg.ActionResponseProtocolIpv6Ping - (*ActionResponseProtocolIpv6PingResponse)(nil), // 538: otg.ActionResponseProtocolIpv6PingResponse - (*ActionProtocolBgp)(nil), // 539: otg.ActionProtocolBgp - (*ActionProtocolBgpNotification)(nil), // 540: otg.ActionProtocolBgpNotification - (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 541: otg.ActionProtocolBgpInitiateGracefulRestart - (*MetricsRequest)(nil), // 542: otg.MetricsRequest - (*MetricsResponse)(nil), // 543: otg.MetricsResponse - (*PortMetricsRequest)(nil), // 544: otg.PortMetricsRequest - (*PortMetric)(nil), // 545: otg.PortMetric - (*FlowMetricsRequest)(nil), // 546: otg.FlowMetricsRequest - (*FlowTaggedMetricsFilter)(nil), // 547: otg.FlowTaggedMetricsFilter - (*FlowMetricTagFilter)(nil), // 548: otg.FlowMetricTagFilter - (*FlowMetric)(nil), // 549: otg.FlowMetric - (*FlowTaggedMetric)(nil), // 550: otg.FlowTaggedMetric - (*FlowMetricTag)(nil), // 551: otg.FlowMetricTag - (*FlowMetricTagValue)(nil), // 552: otg.FlowMetricTagValue - (*MetricTimestamp)(nil), // 553: otg.MetricTimestamp - (*MetricLatency)(nil), // 554: otg.MetricLatency - (*Bgpv4MetricsRequest)(nil), // 555: otg.Bgpv4MetricsRequest - (*Bgpv4Metric)(nil), // 556: otg.Bgpv4Metric - (*Bgpv6MetricsRequest)(nil), // 557: otg.Bgpv6MetricsRequest - (*Bgpv6Metric)(nil), // 558: otg.Bgpv6Metric - (*IsisMetricsRequest)(nil), // 559: otg.IsisMetricsRequest - (*IsisMetric)(nil), // 560: otg.IsisMetric - (*LagMetricsRequest)(nil), // 561: otg.LagMetricsRequest - (*LagMetric)(nil), // 562: otg.LagMetric - (*LacpMetricsRequest)(nil), // 563: otg.LacpMetricsRequest - (*LacpMetric)(nil), // 564: otg.LacpMetric - (*LldpMetricsRequest)(nil), // 565: otg.LldpMetricsRequest - (*LldpMetric)(nil), // 566: otg.LldpMetric - (*RsvpMetricsRequest)(nil), // 567: otg.RsvpMetricsRequest - (*RsvpMetric)(nil), // 568: otg.RsvpMetric - (*StatesRequest)(nil), // 569: otg.StatesRequest - (*StatesResponse)(nil), // 570: otg.StatesResponse - (*Neighborsv4StatesRequest)(nil), // 571: otg.Neighborsv4StatesRequest - (*Neighborsv4State)(nil), // 572: otg.Neighborsv4State - (*Neighborsv6StatesRequest)(nil), // 573: otg.Neighborsv6StatesRequest - (*Neighborsv6State)(nil), // 574: otg.Neighborsv6State - (*BgpPrefixStateRequest)(nil), // 575: otg.BgpPrefixStateRequest - (*BgpPrefixIpv4UnicastFilter)(nil), // 576: otg.BgpPrefixIpv4UnicastFilter - (*BgpPrefixIpv6UnicastFilter)(nil), // 577: otg.BgpPrefixIpv6UnicastFilter - (*BgpPrefixesState)(nil), // 578: otg.BgpPrefixesState - (*BgpPrefixIpv4UnicastState)(nil), // 579: otg.BgpPrefixIpv4UnicastState - (*BgpPrefixIpv6UnicastState)(nil), // 580: otg.BgpPrefixIpv6UnicastState - (*ResultBgpCommunity)(nil), // 581: otg.ResultBgpCommunity - (*ResultBgpAsPath)(nil), // 582: otg.ResultBgpAsPath - (*ResultBgpAsPathSegment)(nil), // 583: otg.ResultBgpAsPathSegment - (*IsisLspsStateRequest)(nil), // 584: otg.IsisLspsStateRequest - (*IsisLspsState)(nil), // 585: otg.IsisLspsState - (*IsisLspState)(nil), // 586: otg.IsisLspState - (*IsisLspTlvs)(nil), // 587: otg.IsisLspTlvs - (*IsisLspHostname)(nil), // 588: otg.IsisLspHostname - (*IsisLspFlags)(nil), // 589: otg.IsisLspFlags - (*IsisLspIsReachabilityTlv)(nil), // 590: otg.IsisLspIsReachabilityTlv - (*IsisLspExtendedIsReachabilityTlv)(nil), // 591: otg.IsisLspExtendedIsReachabilityTlv - (*IsisLspneighbor)(nil), // 592: otg.IsisLspneighbor - (*IsisLspIpv4InternalReachabilityTlv)(nil), // 593: otg.IsisLspIpv4InternalReachabilityTlv - (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 594: otg.IsisLspIpv4ExternalReachabilityTlv - (*IsisLspV4Prefix)(nil), // 595: otg.IsisLspV4Prefix - (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 596: otg.IsisLspExtendedIpv4ReachabilityTlv - (*IsisLspExtendedV4Prefix)(nil), // 597: otg.IsisLspExtendedV4Prefix - (*IsisLspIpv6ReachabilityTlv)(nil), // 598: otg.IsisLspIpv6ReachabilityTlv - (*IsisLspV6Prefix)(nil), // 599: otg.IsisLspV6Prefix - (*IsisLspPrefixAttributes)(nil), // 600: otg.IsisLspPrefixAttributes - (*LldpNeighborsStateRequest)(nil), // 601: otg.LldpNeighborsStateRequest - (*LldpNeighborsState)(nil), // 602: otg.LldpNeighborsState - (*LldpCustomTLVState)(nil), // 603: otg.LldpCustomTLVState - (*LldpCapabilityState)(nil), // 604: otg.LldpCapabilityState - (*RsvpLspsStateRequest)(nil), // 605: otg.RsvpLspsStateRequest - (*RsvpLspsState)(nil), // 606: otg.RsvpLspsState - (*RsvpIPv4LspState)(nil), // 607: otg.RsvpIPv4LspState - (*RsvpLspState)(nil), // 608: otg.RsvpLspState - (*RsvpLspIpv4Rro)(nil), // 609: otg.RsvpLspIpv4Rro - (*RsvpLspIpv4Ero)(nil), // 610: otg.RsvpLspIpv4Ero - (*CaptureRequest)(nil), // 611: otg.CaptureRequest - (*PatternFlowEthernetDstCounter)(nil), // 612: otg.PatternFlowEthernetDstCounter - (*PatternFlowEthernetDstMetricTag)(nil), // 613: otg.PatternFlowEthernetDstMetricTag - (*PatternFlowEthernetDst)(nil), // 614: otg.PatternFlowEthernetDst - (*PatternFlowEthernetSrcCounter)(nil), // 615: otg.PatternFlowEthernetSrcCounter - (*PatternFlowEthernetSrcMetricTag)(nil), // 616: otg.PatternFlowEthernetSrcMetricTag - (*PatternFlowEthernetSrc)(nil), // 617: otg.PatternFlowEthernetSrc - (*PatternFlowEthernetEtherTypeCounter)(nil), // 618: otg.PatternFlowEthernetEtherTypeCounter - (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 619: otg.PatternFlowEthernetEtherTypeMetricTag - (*PatternFlowEthernetEtherType)(nil), // 620: otg.PatternFlowEthernetEtherType - (*PatternFlowEthernetPfcQueueCounter)(nil), // 621: otg.PatternFlowEthernetPfcQueueCounter - (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 622: otg.PatternFlowEthernetPfcQueueMetricTag - (*PatternFlowEthernetPfcQueue)(nil), // 623: otg.PatternFlowEthernetPfcQueue - (*PatternFlowVlanPriorityCounter)(nil), // 624: otg.PatternFlowVlanPriorityCounter - (*PatternFlowVlanPriorityMetricTag)(nil), // 625: otg.PatternFlowVlanPriorityMetricTag - (*PatternFlowVlanPriority)(nil), // 626: otg.PatternFlowVlanPriority - (*PatternFlowVlanCfiCounter)(nil), // 627: otg.PatternFlowVlanCfiCounter - (*PatternFlowVlanCfiMetricTag)(nil), // 628: otg.PatternFlowVlanCfiMetricTag - (*PatternFlowVlanCfi)(nil), // 629: otg.PatternFlowVlanCfi - (*PatternFlowVlanIdCounter)(nil), // 630: otg.PatternFlowVlanIdCounter - (*PatternFlowVlanIdMetricTag)(nil), // 631: otg.PatternFlowVlanIdMetricTag - (*PatternFlowVlanId)(nil), // 632: otg.PatternFlowVlanId - (*PatternFlowVlanTpidCounter)(nil), // 633: otg.PatternFlowVlanTpidCounter - (*PatternFlowVlanTpidMetricTag)(nil), // 634: otg.PatternFlowVlanTpidMetricTag - (*PatternFlowVlanTpid)(nil), // 635: otg.PatternFlowVlanTpid - (*PatternFlowVxlanFlagsCounter)(nil), // 636: otg.PatternFlowVxlanFlagsCounter - (*PatternFlowVxlanFlagsMetricTag)(nil), // 637: otg.PatternFlowVxlanFlagsMetricTag - (*PatternFlowVxlanFlags)(nil), // 638: otg.PatternFlowVxlanFlags - (*PatternFlowVxlanReserved0Counter)(nil), // 639: otg.PatternFlowVxlanReserved0Counter - (*PatternFlowVxlanReserved0MetricTag)(nil), // 640: otg.PatternFlowVxlanReserved0MetricTag - (*PatternFlowVxlanReserved0)(nil), // 641: otg.PatternFlowVxlanReserved0 - (*PatternFlowVxlanVniCounter)(nil), // 642: otg.PatternFlowVxlanVniCounter - (*PatternFlowVxlanVniMetricTag)(nil), // 643: otg.PatternFlowVxlanVniMetricTag - (*PatternFlowVxlanVni)(nil), // 644: otg.PatternFlowVxlanVni - (*PatternFlowVxlanReserved1Counter)(nil), // 645: otg.PatternFlowVxlanReserved1Counter - (*PatternFlowVxlanReserved1MetricTag)(nil), // 646: otg.PatternFlowVxlanReserved1MetricTag - (*PatternFlowVxlanReserved1)(nil), // 647: otg.PatternFlowVxlanReserved1 - (*PatternFlowIpv4VersionCounter)(nil), // 648: otg.PatternFlowIpv4VersionCounter - (*PatternFlowIpv4VersionMetricTag)(nil), // 649: otg.PatternFlowIpv4VersionMetricTag - (*PatternFlowIpv4Version)(nil), // 650: otg.PatternFlowIpv4Version - (*PatternFlowIpv4HeaderLengthCounter)(nil), // 651: otg.PatternFlowIpv4HeaderLengthCounter - (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 652: otg.PatternFlowIpv4HeaderLengthMetricTag - (*PatternFlowIpv4HeaderLength)(nil), // 653: otg.PatternFlowIpv4HeaderLength - (*PatternFlowIpv4TotalLengthCounter)(nil), // 654: otg.PatternFlowIpv4TotalLengthCounter - (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 655: otg.PatternFlowIpv4TotalLengthMetricTag - (*PatternFlowIpv4TotalLength)(nil), // 656: otg.PatternFlowIpv4TotalLength - (*PatternFlowIpv4IdentificationCounter)(nil), // 657: otg.PatternFlowIpv4IdentificationCounter - (*PatternFlowIpv4IdentificationMetricTag)(nil), // 658: otg.PatternFlowIpv4IdentificationMetricTag - (*PatternFlowIpv4Identification)(nil), // 659: otg.PatternFlowIpv4Identification - (*PatternFlowIpv4ReservedCounter)(nil), // 660: otg.PatternFlowIpv4ReservedCounter - (*PatternFlowIpv4ReservedMetricTag)(nil), // 661: otg.PatternFlowIpv4ReservedMetricTag - (*PatternFlowIpv4Reserved)(nil), // 662: otg.PatternFlowIpv4Reserved - (*PatternFlowIpv4DontFragmentCounter)(nil), // 663: otg.PatternFlowIpv4DontFragmentCounter - (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 664: otg.PatternFlowIpv4DontFragmentMetricTag - (*PatternFlowIpv4DontFragment)(nil), // 665: otg.PatternFlowIpv4DontFragment - (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 666: otg.PatternFlowIpv4MoreFragmentsCounter - (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 667: otg.PatternFlowIpv4MoreFragmentsMetricTag - (*PatternFlowIpv4MoreFragments)(nil), // 668: otg.PatternFlowIpv4MoreFragments - (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 669: otg.PatternFlowIpv4FragmentOffsetCounter - (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 670: otg.PatternFlowIpv4FragmentOffsetMetricTag - (*PatternFlowIpv4FragmentOffset)(nil), // 671: otg.PatternFlowIpv4FragmentOffset - (*PatternFlowIpv4TimeToLiveCounter)(nil), // 672: otg.PatternFlowIpv4TimeToLiveCounter - (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 673: otg.PatternFlowIpv4TimeToLiveMetricTag - (*PatternFlowIpv4TimeToLive)(nil), // 674: otg.PatternFlowIpv4TimeToLive - (*PatternFlowIpv4ProtocolCounter)(nil), // 675: otg.PatternFlowIpv4ProtocolCounter - (*PatternFlowIpv4ProtocolMetricTag)(nil), // 676: otg.PatternFlowIpv4ProtocolMetricTag - (*PatternFlowIpv4Protocol)(nil), // 677: otg.PatternFlowIpv4Protocol - (*PatternFlowIpv4HeaderChecksum)(nil), // 678: otg.PatternFlowIpv4HeaderChecksum - (*PatternFlowIpv4SrcCounter)(nil), // 679: otg.PatternFlowIpv4SrcCounter - (*PatternFlowIpv4SrcMetricTag)(nil), // 680: otg.PatternFlowIpv4SrcMetricTag - (*PatternFlowIpv4Src)(nil), // 681: otg.PatternFlowIpv4Src - (*PatternFlowIpv4DstCounter)(nil), // 682: otg.PatternFlowIpv4DstCounter - (*PatternFlowIpv4DstMetricTag)(nil), // 683: otg.PatternFlowIpv4DstMetricTag - (*PatternFlowIpv4Dst)(nil), // 684: otg.PatternFlowIpv4Dst - (*PatternFlowIpv4PriorityRawCounter)(nil), // 685: otg.PatternFlowIpv4PriorityRawCounter - (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 686: otg.PatternFlowIpv4PriorityRawMetricTag - (*PatternFlowIpv4PriorityRaw)(nil), // 687: otg.PatternFlowIpv4PriorityRaw - (*PatternFlowIpv4DscpPhbCounter)(nil), // 688: otg.PatternFlowIpv4DscpPhbCounter - (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 689: otg.PatternFlowIpv4DscpPhbMetricTag - (*PatternFlowIpv4DscpPhb)(nil), // 690: otg.PatternFlowIpv4DscpPhb - (*PatternFlowIpv4DscpEcnCounter)(nil), // 691: otg.PatternFlowIpv4DscpEcnCounter - (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 692: otg.PatternFlowIpv4DscpEcnMetricTag - (*PatternFlowIpv4DscpEcn)(nil), // 693: otg.PatternFlowIpv4DscpEcn - (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 694: otg.PatternFlowIpv4TosPrecedenceCounter - (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 695: otg.PatternFlowIpv4TosPrecedenceMetricTag - (*PatternFlowIpv4TosPrecedence)(nil), // 696: otg.PatternFlowIpv4TosPrecedence - (*PatternFlowIpv4TosDelayCounter)(nil), // 697: otg.PatternFlowIpv4TosDelayCounter - (*PatternFlowIpv4TosDelayMetricTag)(nil), // 698: otg.PatternFlowIpv4TosDelayMetricTag - (*PatternFlowIpv4TosDelay)(nil), // 699: otg.PatternFlowIpv4TosDelay - (*PatternFlowIpv4TosThroughputCounter)(nil), // 700: otg.PatternFlowIpv4TosThroughputCounter - (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 701: otg.PatternFlowIpv4TosThroughputMetricTag - (*PatternFlowIpv4TosThroughput)(nil), // 702: otg.PatternFlowIpv4TosThroughput - (*PatternFlowIpv4TosReliabilityCounter)(nil), // 703: otg.PatternFlowIpv4TosReliabilityCounter - (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 704: otg.PatternFlowIpv4TosReliabilityMetricTag - (*PatternFlowIpv4TosReliability)(nil), // 705: otg.PatternFlowIpv4TosReliability - (*PatternFlowIpv4TosMonetaryCounter)(nil), // 706: otg.PatternFlowIpv4TosMonetaryCounter - (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 707: otg.PatternFlowIpv4TosMonetaryMetricTag - (*PatternFlowIpv4TosMonetary)(nil), // 708: otg.PatternFlowIpv4TosMonetary - (*PatternFlowIpv4TosUnusedCounter)(nil), // 709: otg.PatternFlowIpv4TosUnusedCounter - (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 710: otg.PatternFlowIpv4TosUnusedMetricTag - (*PatternFlowIpv4TosUnused)(nil), // 711: otg.PatternFlowIpv4TosUnused - (*PatternFlowIpv6VersionCounter)(nil), // 712: otg.PatternFlowIpv6VersionCounter - (*PatternFlowIpv6VersionMetricTag)(nil), // 713: otg.PatternFlowIpv6VersionMetricTag - (*PatternFlowIpv6Version)(nil), // 714: otg.PatternFlowIpv6Version - (*PatternFlowIpv6TrafficClassCounter)(nil), // 715: otg.PatternFlowIpv6TrafficClassCounter - (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 716: otg.PatternFlowIpv6TrafficClassMetricTag - (*PatternFlowIpv6TrafficClass)(nil), // 717: otg.PatternFlowIpv6TrafficClass - (*PatternFlowIpv6FlowLabelCounter)(nil), // 718: otg.PatternFlowIpv6FlowLabelCounter - (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 719: otg.PatternFlowIpv6FlowLabelMetricTag - (*PatternFlowIpv6FlowLabel)(nil), // 720: otg.PatternFlowIpv6FlowLabel - (*PatternFlowIpv6PayloadLengthCounter)(nil), // 721: otg.PatternFlowIpv6PayloadLengthCounter - (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 722: otg.PatternFlowIpv6PayloadLengthMetricTag - (*PatternFlowIpv6PayloadLength)(nil), // 723: otg.PatternFlowIpv6PayloadLength - (*PatternFlowIpv6NextHeaderCounter)(nil), // 724: otg.PatternFlowIpv6NextHeaderCounter - (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 725: otg.PatternFlowIpv6NextHeaderMetricTag - (*PatternFlowIpv6NextHeader)(nil), // 726: otg.PatternFlowIpv6NextHeader - (*PatternFlowIpv6HopLimitCounter)(nil), // 727: otg.PatternFlowIpv6HopLimitCounter - (*PatternFlowIpv6HopLimitMetricTag)(nil), // 728: otg.PatternFlowIpv6HopLimitMetricTag - (*PatternFlowIpv6HopLimit)(nil), // 729: otg.PatternFlowIpv6HopLimit - (*PatternFlowIpv6SrcCounter)(nil), // 730: otg.PatternFlowIpv6SrcCounter - (*PatternFlowIpv6SrcMetricTag)(nil), // 731: otg.PatternFlowIpv6SrcMetricTag - (*PatternFlowIpv6Src)(nil), // 732: otg.PatternFlowIpv6Src - (*PatternFlowIpv6DstCounter)(nil), // 733: otg.PatternFlowIpv6DstCounter - (*PatternFlowIpv6DstMetricTag)(nil), // 734: otg.PatternFlowIpv6DstMetricTag - (*PatternFlowIpv6Dst)(nil), // 735: otg.PatternFlowIpv6Dst - (*PatternFlowPfcPauseDstCounter)(nil), // 736: otg.PatternFlowPfcPauseDstCounter - (*PatternFlowPfcPauseDstMetricTag)(nil), // 737: otg.PatternFlowPfcPauseDstMetricTag - (*PatternFlowPfcPauseDst)(nil), // 738: otg.PatternFlowPfcPauseDst - (*PatternFlowPfcPauseSrcCounter)(nil), // 739: otg.PatternFlowPfcPauseSrcCounter - (*PatternFlowPfcPauseSrcMetricTag)(nil), // 740: otg.PatternFlowPfcPauseSrcMetricTag - (*PatternFlowPfcPauseSrc)(nil), // 741: otg.PatternFlowPfcPauseSrc - (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 742: otg.PatternFlowPfcPauseEtherTypeCounter - (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 743: otg.PatternFlowPfcPauseEtherTypeMetricTag - (*PatternFlowPfcPauseEtherType)(nil), // 744: otg.PatternFlowPfcPauseEtherType - (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 745: otg.PatternFlowPfcPauseControlOpCodeCounter - (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 746: otg.PatternFlowPfcPauseControlOpCodeMetricTag - (*PatternFlowPfcPauseControlOpCode)(nil), // 747: otg.PatternFlowPfcPauseControlOpCode - (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 748: otg.PatternFlowPfcPauseClassEnableVectorCounter - (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 749: otg.PatternFlowPfcPauseClassEnableVectorMetricTag - (*PatternFlowPfcPauseClassEnableVector)(nil), // 750: otg.PatternFlowPfcPauseClassEnableVector - (*PatternFlowPfcPausePauseClass0Counter)(nil), // 751: otg.PatternFlowPfcPausePauseClass0Counter - (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 752: otg.PatternFlowPfcPausePauseClass0MetricTag - (*PatternFlowPfcPausePauseClass0)(nil), // 753: otg.PatternFlowPfcPausePauseClass0 - (*PatternFlowPfcPausePauseClass1Counter)(nil), // 754: otg.PatternFlowPfcPausePauseClass1Counter - (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 755: otg.PatternFlowPfcPausePauseClass1MetricTag - (*PatternFlowPfcPausePauseClass1)(nil), // 756: otg.PatternFlowPfcPausePauseClass1 - (*PatternFlowPfcPausePauseClass2Counter)(nil), // 757: otg.PatternFlowPfcPausePauseClass2Counter - (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 758: otg.PatternFlowPfcPausePauseClass2MetricTag - (*PatternFlowPfcPausePauseClass2)(nil), // 759: otg.PatternFlowPfcPausePauseClass2 - (*PatternFlowPfcPausePauseClass3Counter)(nil), // 760: otg.PatternFlowPfcPausePauseClass3Counter - (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 761: otg.PatternFlowPfcPausePauseClass3MetricTag - (*PatternFlowPfcPausePauseClass3)(nil), // 762: otg.PatternFlowPfcPausePauseClass3 - (*PatternFlowPfcPausePauseClass4Counter)(nil), // 763: otg.PatternFlowPfcPausePauseClass4Counter - (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 764: otg.PatternFlowPfcPausePauseClass4MetricTag - (*PatternFlowPfcPausePauseClass4)(nil), // 765: otg.PatternFlowPfcPausePauseClass4 - (*PatternFlowPfcPausePauseClass5Counter)(nil), // 766: otg.PatternFlowPfcPausePauseClass5Counter - (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 767: otg.PatternFlowPfcPausePauseClass5MetricTag - (*PatternFlowPfcPausePauseClass5)(nil), // 768: otg.PatternFlowPfcPausePauseClass5 - (*PatternFlowPfcPausePauseClass6Counter)(nil), // 769: otg.PatternFlowPfcPausePauseClass6Counter - (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 770: otg.PatternFlowPfcPausePauseClass6MetricTag - (*PatternFlowPfcPausePauseClass6)(nil), // 771: otg.PatternFlowPfcPausePauseClass6 - (*PatternFlowPfcPausePauseClass7Counter)(nil), // 772: otg.PatternFlowPfcPausePauseClass7Counter - (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 773: otg.PatternFlowPfcPausePauseClass7MetricTag - (*PatternFlowPfcPausePauseClass7)(nil), // 774: otg.PatternFlowPfcPausePauseClass7 - (*PatternFlowEthernetPauseDstCounter)(nil), // 775: otg.PatternFlowEthernetPauseDstCounter - (*PatternFlowEthernetPauseDstMetricTag)(nil), // 776: otg.PatternFlowEthernetPauseDstMetricTag - (*PatternFlowEthernetPauseDst)(nil), // 777: otg.PatternFlowEthernetPauseDst - (*PatternFlowEthernetPauseSrcCounter)(nil), // 778: otg.PatternFlowEthernetPauseSrcCounter - (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 779: otg.PatternFlowEthernetPauseSrcMetricTag - (*PatternFlowEthernetPauseSrc)(nil), // 780: otg.PatternFlowEthernetPauseSrc - (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 781: otg.PatternFlowEthernetPauseEtherTypeCounter - (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 782: otg.PatternFlowEthernetPauseEtherTypeMetricTag - (*PatternFlowEthernetPauseEtherType)(nil), // 783: otg.PatternFlowEthernetPauseEtherType - (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 784: otg.PatternFlowEthernetPauseControlOpCodeCounter - (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 785: otg.PatternFlowEthernetPauseControlOpCodeMetricTag - (*PatternFlowEthernetPauseControlOpCode)(nil), // 786: otg.PatternFlowEthernetPauseControlOpCode - (*PatternFlowEthernetPauseTimeCounter)(nil), // 787: otg.PatternFlowEthernetPauseTimeCounter - (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 788: otg.PatternFlowEthernetPauseTimeMetricTag - (*PatternFlowEthernetPauseTime)(nil), // 789: otg.PatternFlowEthernetPauseTime - (*PatternFlowTcpSrcPortCounter)(nil), // 790: otg.PatternFlowTcpSrcPortCounter - (*PatternFlowTcpSrcPortMetricTag)(nil), // 791: otg.PatternFlowTcpSrcPortMetricTag - (*PatternFlowTcpSrcPort)(nil), // 792: otg.PatternFlowTcpSrcPort - (*PatternFlowTcpDstPortCounter)(nil), // 793: otg.PatternFlowTcpDstPortCounter - (*PatternFlowTcpDstPortMetricTag)(nil), // 794: otg.PatternFlowTcpDstPortMetricTag - (*PatternFlowTcpDstPort)(nil), // 795: otg.PatternFlowTcpDstPort - (*PatternFlowTcpSeqNumCounter)(nil), // 796: otg.PatternFlowTcpSeqNumCounter - (*PatternFlowTcpSeqNumMetricTag)(nil), // 797: otg.PatternFlowTcpSeqNumMetricTag - (*PatternFlowTcpSeqNum)(nil), // 798: otg.PatternFlowTcpSeqNum - (*PatternFlowTcpAckNumCounter)(nil), // 799: otg.PatternFlowTcpAckNumCounter - (*PatternFlowTcpAckNumMetricTag)(nil), // 800: otg.PatternFlowTcpAckNumMetricTag - (*PatternFlowTcpAckNum)(nil), // 801: otg.PatternFlowTcpAckNum - (*PatternFlowTcpDataOffsetCounter)(nil), // 802: otg.PatternFlowTcpDataOffsetCounter - (*PatternFlowTcpDataOffsetMetricTag)(nil), // 803: otg.PatternFlowTcpDataOffsetMetricTag - (*PatternFlowTcpDataOffset)(nil), // 804: otg.PatternFlowTcpDataOffset - (*PatternFlowTcpEcnNsCounter)(nil), // 805: otg.PatternFlowTcpEcnNsCounter - (*PatternFlowTcpEcnNsMetricTag)(nil), // 806: otg.PatternFlowTcpEcnNsMetricTag - (*PatternFlowTcpEcnNs)(nil), // 807: otg.PatternFlowTcpEcnNs - (*PatternFlowTcpEcnCwrCounter)(nil), // 808: otg.PatternFlowTcpEcnCwrCounter - (*PatternFlowTcpEcnCwrMetricTag)(nil), // 809: otg.PatternFlowTcpEcnCwrMetricTag - (*PatternFlowTcpEcnCwr)(nil), // 810: otg.PatternFlowTcpEcnCwr - (*PatternFlowTcpEcnEchoCounter)(nil), // 811: otg.PatternFlowTcpEcnEchoCounter - (*PatternFlowTcpEcnEchoMetricTag)(nil), // 812: otg.PatternFlowTcpEcnEchoMetricTag - (*PatternFlowTcpEcnEcho)(nil), // 813: otg.PatternFlowTcpEcnEcho - (*PatternFlowTcpCtlUrgCounter)(nil), // 814: otg.PatternFlowTcpCtlUrgCounter - (*PatternFlowTcpCtlUrgMetricTag)(nil), // 815: otg.PatternFlowTcpCtlUrgMetricTag - (*PatternFlowTcpCtlUrg)(nil), // 816: otg.PatternFlowTcpCtlUrg - (*PatternFlowTcpCtlAckCounter)(nil), // 817: otg.PatternFlowTcpCtlAckCounter - (*PatternFlowTcpCtlAckMetricTag)(nil), // 818: otg.PatternFlowTcpCtlAckMetricTag - (*PatternFlowTcpCtlAck)(nil), // 819: otg.PatternFlowTcpCtlAck - (*PatternFlowTcpCtlPshCounter)(nil), // 820: otg.PatternFlowTcpCtlPshCounter - (*PatternFlowTcpCtlPshMetricTag)(nil), // 821: otg.PatternFlowTcpCtlPshMetricTag - (*PatternFlowTcpCtlPsh)(nil), // 822: otg.PatternFlowTcpCtlPsh - (*PatternFlowTcpCtlRstCounter)(nil), // 823: otg.PatternFlowTcpCtlRstCounter - (*PatternFlowTcpCtlRstMetricTag)(nil), // 824: otg.PatternFlowTcpCtlRstMetricTag - (*PatternFlowTcpCtlRst)(nil), // 825: otg.PatternFlowTcpCtlRst - (*PatternFlowTcpCtlSynCounter)(nil), // 826: otg.PatternFlowTcpCtlSynCounter - (*PatternFlowTcpCtlSynMetricTag)(nil), // 827: otg.PatternFlowTcpCtlSynMetricTag - (*PatternFlowTcpCtlSyn)(nil), // 828: otg.PatternFlowTcpCtlSyn - (*PatternFlowTcpCtlFinCounter)(nil), // 829: otg.PatternFlowTcpCtlFinCounter - (*PatternFlowTcpCtlFinMetricTag)(nil), // 830: otg.PatternFlowTcpCtlFinMetricTag - (*PatternFlowTcpCtlFin)(nil), // 831: otg.PatternFlowTcpCtlFin - (*PatternFlowTcpWindowCounter)(nil), // 832: otg.PatternFlowTcpWindowCounter - (*PatternFlowTcpWindowMetricTag)(nil), // 833: otg.PatternFlowTcpWindowMetricTag - (*PatternFlowTcpWindow)(nil), // 834: otg.PatternFlowTcpWindow - (*PatternFlowUdpSrcPortCounter)(nil), // 835: otg.PatternFlowUdpSrcPortCounter - (*PatternFlowUdpSrcPortMetricTag)(nil), // 836: otg.PatternFlowUdpSrcPortMetricTag - (*PatternFlowUdpSrcPort)(nil), // 837: otg.PatternFlowUdpSrcPort - (*PatternFlowUdpDstPortCounter)(nil), // 838: otg.PatternFlowUdpDstPortCounter - (*PatternFlowUdpDstPortMetricTag)(nil), // 839: otg.PatternFlowUdpDstPortMetricTag - (*PatternFlowUdpDstPort)(nil), // 840: otg.PatternFlowUdpDstPort - (*PatternFlowUdpLengthCounter)(nil), // 841: otg.PatternFlowUdpLengthCounter - (*PatternFlowUdpLengthMetricTag)(nil), // 842: otg.PatternFlowUdpLengthMetricTag - (*PatternFlowUdpLength)(nil), // 843: otg.PatternFlowUdpLength - (*PatternFlowUdpChecksum)(nil), // 844: otg.PatternFlowUdpChecksum - (*PatternFlowGreChecksumPresentCounter)(nil), // 845: otg.PatternFlowGreChecksumPresentCounter - (*PatternFlowGreChecksumPresentMetricTag)(nil), // 846: otg.PatternFlowGreChecksumPresentMetricTag - (*PatternFlowGreChecksumPresent)(nil), // 847: otg.PatternFlowGreChecksumPresent - (*PatternFlowGreReserved0Counter)(nil), // 848: otg.PatternFlowGreReserved0Counter - (*PatternFlowGreReserved0MetricTag)(nil), // 849: otg.PatternFlowGreReserved0MetricTag - (*PatternFlowGreReserved0)(nil), // 850: otg.PatternFlowGreReserved0 - (*PatternFlowGreVersionCounter)(nil), // 851: otg.PatternFlowGreVersionCounter - (*PatternFlowGreVersionMetricTag)(nil), // 852: otg.PatternFlowGreVersionMetricTag - (*PatternFlowGreVersion)(nil), // 853: otg.PatternFlowGreVersion - (*PatternFlowGreProtocolCounter)(nil), // 854: otg.PatternFlowGreProtocolCounter - (*PatternFlowGreProtocolMetricTag)(nil), // 855: otg.PatternFlowGreProtocolMetricTag - (*PatternFlowGreProtocol)(nil), // 856: otg.PatternFlowGreProtocol - (*PatternFlowGreChecksum)(nil), // 857: otg.PatternFlowGreChecksum - (*PatternFlowGreReserved1Counter)(nil), // 858: otg.PatternFlowGreReserved1Counter - (*PatternFlowGreReserved1MetricTag)(nil), // 859: otg.PatternFlowGreReserved1MetricTag - (*PatternFlowGreReserved1)(nil), // 860: otg.PatternFlowGreReserved1 - (*PatternFlowGtpv1VersionCounter)(nil), // 861: otg.PatternFlowGtpv1VersionCounter - (*PatternFlowGtpv1VersionMetricTag)(nil), // 862: otg.PatternFlowGtpv1VersionMetricTag - (*PatternFlowGtpv1Version)(nil), // 863: otg.PatternFlowGtpv1Version - (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 864: otg.PatternFlowGtpv1ProtocolTypeCounter - (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 865: otg.PatternFlowGtpv1ProtocolTypeMetricTag - (*PatternFlowGtpv1ProtocolType)(nil), // 866: otg.PatternFlowGtpv1ProtocolType - (*PatternFlowGtpv1ReservedCounter)(nil), // 867: otg.PatternFlowGtpv1ReservedCounter - (*PatternFlowGtpv1ReservedMetricTag)(nil), // 868: otg.PatternFlowGtpv1ReservedMetricTag - (*PatternFlowGtpv1Reserved)(nil), // 869: otg.PatternFlowGtpv1Reserved - (*PatternFlowGtpv1EFlagCounter)(nil), // 870: otg.PatternFlowGtpv1EFlagCounter - (*PatternFlowGtpv1EFlagMetricTag)(nil), // 871: otg.PatternFlowGtpv1EFlagMetricTag - (*PatternFlowGtpv1EFlag)(nil), // 872: otg.PatternFlowGtpv1EFlag - (*PatternFlowGtpv1SFlagCounter)(nil), // 873: otg.PatternFlowGtpv1SFlagCounter - (*PatternFlowGtpv1SFlagMetricTag)(nil), // 874: otg.PatternFlowGtpv1SFlagMetricTag - (*PatternFlowGtpv1SFlag)(nil), // 875: otg.PatternFlowGtpv1SFlag - (*PatternFlowGtpv1PnFlagCounter)(nil), // 876: otg.PatternFlowGtpv1PnFlagCounter - (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 877: otg.PatternFlowGtpv1PnFlagMetricTag - (*PatternFlowGtpv1PnFlag)(nil), // 878: otg.PatternFlowGtpv1PnFlag - (*PatternFlowGtpv1MessageTypeCounter)(nil), // 879: otg.PatternFlowGtpv1MessageTypeCounter - (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 880: otg.PatternFlowGtpv1MessageTypeMetricTag - (*PatternFlowGtpv1MessageType)(nil), // 881: otg.PatternFlowGtpv1MessageType - (*PatternFlowGtpv1MessageLengthCounter)(nil), // 882: otg.PatternFlowGtpv1MessageLengthCounter - (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 883: otg.PatternFlowGtpv1MessageLengthMetricTag - (*PatternFlowGtpv1MessageLength)(nil), // 884: otg.PatternFlowGtpv1MessageLength - (*PatternFlowGtpv1TeidCounter)(nil), // 885: otg.PatternFlowGtpv1TeidCounter - (*PatternFlowGtpv1TeidMetricTag)(nil), // 886: otg.PatternFlowGtpv1TeidMetricTag - (*PatternFlowGtpv1Teid)(nil), // 887: otg.PatternFlowGtpv1Teid - (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 888: otg.PatternFlowGtpv1SquenceNumberCounter - (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 889: otg.PatternFlowGtpv1SquenceNumberMetricTag - (*PatternFlowGtpv1SquenceNumber)(nil), // 890: otg.PatternFlowGtpv1SquenceNumber - (*PatternFlowGtpv1NPduNumberCounter)(nil), // 891: otg.PatternFlowGtpv1NPduNumberCounter - (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 892: otg.PatternFlowGtpv1NPduNumberMetricTag - (*PatternFlowGtpv1NPduNumber)(nil), // 893: otg.PatternFlowGtpv1NPduNumber - (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 894: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 895: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 896: otg.PatternFlowGtpv1NextExtensionHeaderType - (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 897: otg.PatternFlowGtpExtensionExtensionLengthCounter - (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 898: otg.PatternFlowGtpExtensionExtensionLengthMetricTag - (*PatternFlowGtpExtensionExtensionLength)(nil), // 899: otg.PatternFlowGtpExtensionExtensionLength - (*PatternFlowGtpExtensionContentsCounter)(nil), // 900: otg.PatternFlowGtpExtensionContentsCounter - (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 901: otg.PatternFlowGtpExtensionContentsMetricTag - (*PatternFlowGtpExtensionContents)(nil), // 902: otg.PatternFlowGtpExtensionContents - (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 903: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 904: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 905: otg.PatternFlowGtpExtensionNextExtensionHeader - (*PatternFlowGtpv2VersionCounter)(nil), // 906: otg.PatternFlowGtpv2VersionCounter - (*PatternFlowGtpv2VersionMetricTag)(nil), // 907: otg.PatternFlowGtpv2VersionMetricTag - (*PatternFlowGtpv2Version)(nil), // 908: otg.PatternFlowGtpv2Version - (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 909: otg.PatternFlowGtpv2PiggybackingFlagCounter - (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 910: otg.PatternFlowGtpv2PiggybackingFlagMetricTag - (*PatternFlowGtpv2PiggybackingFlag)(nil), // 911: otg.PatternFlowGtpv2PiggybackingFlag - (*PatternFlowGtpv2TeidFlagCounter)(nil), // 912: otg.PatternFlowGtpv2TeidFlagCounter - (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 913: otg.PatternFlowGtpv2TeidFlagMetricTag - (*PatternFlowGtpv2TeidFlag)(nil), // 914: otg.PatternFlowGtpv2TeidFlag - (*PatternFlowGtpv2Spare1Counter)(nil), // 915: otg.PatternFlowGtpv2Spare1Counter - (*PatternFlowGtpv2Spare1MetricTag)(nil), // 916: otg.PatternFlowGtpv2Spare1MetricTag - (*PatternFlowGtpv2Spare1)(nil), // 917: otg.PatternFlowGtpv2Spare1 - (*PatternFlowGtpv2MessageTypeCounter)(nil), // 918: otg.PatternFlowGtpv2MessageTypeCounter - (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 919: otg.PatternFlowGtpv2MessageTypeMetricTag - (*PatternFlowGtpv2MessageType)(nil), // 920: otg.PatternFlowGtpv2MessageType - (*PatternFlowGtpv2MessageLengthCounter)(nil), // 921: otg.PatternFlowGtpv2MessageLengthCounter - (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 922: otg.PatternFlowGtpv2MessageLengthMetricTag - (*PatternFlowGtpv2MessageLength)(nil), // 923: otg.PatternFlowGtpv2MessageLength - (*PatternFlowGtpv2TeidCounter)(nil), // 924: otg.PatternFlowGtpv2TeidCounter - (*PatternFlowGtpv2TeidMetricTag)(nil), // 925: otg.PatternFlowGtpv2TeidMetricTag - (*PatternFlowGtpv2Teid)(nil), // 926: otg.PatternFlowGtpv2Teid - (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 927: otg.PatternFlowGtpv2SequenceNumberCounter - (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 928: otg.PatternFlowGtpv2SequenceNumberMetricTag - (*PatternFlowGtpv2SequenceNumber)(nil), // 929: otg.PatternFlowGtpv2SequenceNumber - (*PatternFlowGtpv2Spare2Counter)(nil), // 930: otg.PatternFlowGtpv2Spare2Counter - (*PatternFlowGtpv2Spare2MetricTag)(nil), // 931: otg.PatternFlowGtpv2Spare2MetricTag - (*PatternFlowGtpv2Spare2)(nil), // 932: otg.PatternFlowGtpv2Spare2 - (*PatternFlowArpHardwareTypeCounter)(nil), // 933: otg.PatternFlowArpHardwareTypeCounter - (*PatternFlowArpHardwareTypeMetricTag)(nil), // 934: otg.PatternFlowArpHardwareTypeMetricTag - (*PatternFlowArpHardwareType)(nil), // 935: otg.PatternFlowArpHardwareType - (*PatternFlowArpProtocolTypeCounter)(nil), // 936: otg.PatternFlowArpProtocolTypeCounter - (*PatternFlowArpProtocolTypeMetricTag)(nil), // 937: otg.PatternFlowArpProtocolTypeMetricTag - (*PatternFlowArpProtocolType)(nil), // 938: otg.PatternFlowArpProtocolType - (*PatternFlowArpHardwareLengthCounter)(nil), // 939: otg.PatternFlowArpHardwareLengthCounter - (*PatternFlowArpHardwareLengthMetricTag)(nil), // 940: otg.PatternFlowArpHardwareLengthMetricTag - (*PatternFlowArpHardwareLength)(nil), // 941: otg.PatternFlowArpHardwareLength - (*PatternFlowArpProtocolLengthCounter)(nil), // 942: otg.PatternFlowArpProtocolLengthCounter - (*PatternFlowArpProtocolLengthMetricTag)(nil), // 943: otg.PatternFlowArpProtocolLengthMetricTag - (*PatternFlowArpProtocolLength)(nil), // 944: otg.PatternFlowArpProtocolLength - (*PatternFlowArpOperationCounter)(nil), // 945: otg.PatternFlowArpOperationCounter - (*PatternFlowArpOperationMetricTag)(nil), // 946: otg.PatternFlowArpOperationMetricTag - (*PatternFlowArpOperation)(nil), // 947: otg.PatternFlowArpOperation - (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 948: otg.PatternFlowArpSenderHardwareAddrCounter - (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 949: otg.PatternFlowArpSenderHardwareAddrMetricTag - (*PatternFlowArpSenderHardwareAddr)(nil), // 950: otg.PatternFlowArpSenderHardwareAddr - (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 951: otg.PatternFlowArpSenderProtocolAddrCounter - (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 952: otg.PatternFlowArpSenderProtocolAddrMetricTag - (*PatternFlowArpSenderProtocolAddr)(nil), // 953: otg.PatternFlowArpSenderProtocolAddr - (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 954: otg.PatternFlowArpTargetHardwareAddrCounter - (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 955: otg.PatternFlowArpTargetHardwareAddrMetricTag - (*PatternFlowArpTargetHardwareAddr)(nil), // 956: otg.PatternFlowArpTargetHardwareAddr - (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 957: otg.PatternFlowArpTargetProtocolAddrCounter - (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 958: otg.PatternFlowArpTargetProtocolAddrMetricTag - (*PatternFlowArpTargetProtocolAddr)(nil), // 959: otg.PatternFlowArpTargetProtocolAddr - (*PatternFlowIcmpEchoTypeCounter)(nil), // 960: otg.PatternFlowIcmpEchoTypeCounter - (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 961: otg.PatternFlowIcmpEchoTypeMetricTag - (*PatternFlowIcmpEchoType)(nil), // 962: otg.PatternFlowIcmpEchoType - (*PatternFlowIcmpEchoCodeCounter)(nil), // 963: otg.PatternFlowIcmpEchoCodeCounter - (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 964: otg.PatternFlowIcmpEchoCodeMetricTag - (*PatternFlowIcmpEchoCode)(nil), // 965: otg.PatternFlowIcmpEchoCode - (*PatternFlowIcmpEchoChecksum)(nil), // 966: otg.PatternFlowIcmpEchoChecksum - (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 967: otg.PatternFlowIcmpEchoIdentifierCounter - (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 968: otg.PatternFlowIcmpEchoIdentifierMetricTag - (*PatternFlowIcmpEchoIdentifier)(nil), // 969: otg.PatternFlowIcmpEchoIdentifier - (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 970: otg.PatternFlowIcmpEchoSequenceNumberCounter - (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 971: otg.PatternFlowIcmpEchoSequenceNumberMetricTag - (*PatternFlowIcmpEchoSequenceNumber)(nil), // 972: otg.PatternFlowIcmpEchoSequenceNumber - (*PatternFlowIcmpCommonChecksum)(nil), // 973: otg.PatternFlowIcmpCommonChecksum - (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 974: otg.PatternFlowIcmpNextFieldsIdentifierCounter - (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 975: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 976: otg.PatternFlowIcmpNextFieldsIdentifier - (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 977: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 978: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 979: otg.PatternFlowIcmpNextFieldsSequenceNumber - (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 980: otg.PatternFlowIcmpv6EchoTypeCounter - (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 981: otg.PatternFlowIcmpv6EchoTypeMetricTag - (*PatternFlowIcmpv6EchoType)(nil), // 982: otg.PatternFlowIcmpv6EchoType - (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 983: otg.PatternFlowIcmpv6EchoCodeCounter - (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 984: otg.PatternFlowIcmpv6EchoCodeMetricTag - (*PatternFlowIcmpv6EchoCode)(nil), // 985: otg.PatternFlowIcmpv6EchoCode - (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 986: otg.PatternFlowIcmpv6EchoIdentifierCounter - (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 987: otg.PatternFlowIcmpv6EchoIdentifierMetricTag - (*PatternFlowIcmpv6EchoIdentifier)(nil), // 988: otg.PatternFlowIcmpv6EchoIdentifier - (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 989: otg.PatternFlowIcmpv6EchoSequenceNumberCounter - (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 990: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 991: otg.PatternFlowIcmpv6EchoSequenceNumber - (*PatternFlowIcmpv6EchoChecksum)(nil), // 992: otg.PatternFlowIcmpv6EchoChecksum - (*PatternFlowIcmpv6CommonChecksum)(nil), // 993: otg.PatternFlowIcmpv6CommonChecksum - (*PatternFlowPppAddressCounter)(nil), // 994: otg.PatternFlowPppAddressCounter - (*PatternFlowPppAddressMetricTag)(nil), // 995: otg.PatternFlowPppAddressMetricTag - (*PatternFlowPppAddress)(nil), // 996: otg.PatternFlowPppAddress - (*PatternFlowPppControlCounter)(nil), // 997: otg.PatternFlowPppControlCounter - (*PatternFlowPppControlMetricTag)(nil), // 998: otg.PatternFlowPppControlMetricTag - (*PatternFlowPppControl)(nil), // 999: otg.PatternFlowPppControl - (*PatternFlowPppProtocolTypeCounter)(nil), // 1000: otg.PatternFlowPppProtocolTypeCounter - (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1001: otg.PatternFlowPppProtocolTypeMetricTag - (*PatternFlowPppProtocolType)(nil), // 1002: otg.PatternFlowPppProtocolType - (*PatternFlowIgmpv1VersionCounter)(nil), // 1003: otg.PatternFlowIgmpv1VersionCounter - (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1004: otg.PatternFlowIgmpv1VersionMetricTag - (*PatternFlowIgmpv1Version)(nil), // 1005: otg.PatternFlowIgmpv1Version - (*PatternFlowIgmpv1TypeCounter)(nil), // 1006: otg.PatternFlowIgmpv1TypeCounter - (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1007: otg.PatternFlowIgmpv1TypeMetricTag - (*PatternFlowIgmpv1Type)(nil), // 1008: otg.PatternFlowIgmpv1Type - (*PatternFlowIgmpv1UnusedCounter)(nil), // 1009: otg.PatternFlowIgmpv1UnusedCounter - (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1010: otg.PatternFlowIgmpv1UnusedMetricTag - (*PatternFlowIgmpv1Unused)(nil), // 1011: otg.PatternFlowIgmpv1Unused - (*PatternFlowIgmpv1Checksum)(nil), // 1012: otg.PatternFlowIgmpv1Checksum - (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1013: otg.PatternFlowIgmpv1GroupAddressCounter - (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1014: otg.PatternFlowIgmpv1GroupAddressMetricTag - (*PatternFlowIgmpv1GroupAddress)(nil), // 1015: otg.PatternFlowIgmpv1GroupAddress - (*PatternFlowMplsLabelCounter)(nil), // 1016: otg.PatternFlowMplsLabelCounter - (*PatternFlowMplsLabelMetricTag)(nil), // 1017: otg.PatternFlowMplsLabelMetricTag - (*PatternFlowMplsLabel)(nil), // 1018: otg.PatternFlowMplsLabel - (*PatternFlowMplsTrafficClassCounter)(nil), // 1019: otg.PatternFlowMplsTrafficClassCounter - (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1020: otg.PatternFlowMplsTrafficClassMetricTag - (*PatternFlowMplsTrafficClass)(nil), // 1021: otg.PatternFlowMplsTrafficClass - (*PatternFlowMplsBottomOfStackCounter)(nil), // 1022: otg.PatternFlowMplsBottomOfStackCounter - (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1023: otg.PatternFlowMplsBottomOfStackMetricTag - (*PatternFlowMplsBottomOfStack)(nil), // 1024: otg.PatternFlowMplsBottomOfStack - (*PatternFlowMplsTimeToLiveCounter)(nil), // 1025: otg.PatternFlowMplsTimeToLiveCounter - (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1026: otg.PatternFlowMplsTimeToLiveMetricTag - (*PatternFlowMplsTimeToLive)(nil), // 1027: otg.PatternFlowMplsTimeToLive - (*Version)(nil), // 1028: otg.Version - (*Success)(nil), // 1029: otg.Success - (*Failure)(nil), // 1030: otg.Failure - (*SetConfigRequest)(nil), // 1031: otg.SetConfigRequest - (*UpdateConfigRequest)(nil), // 1032: otg.UpdateConfigRequest - (*SetConfigResponse)(nil), // 1033: otg.SetConfigResponse - (*GetConfigResponse)(nil), // 1034: otg.GetConfigResponse - (*UpdateConfigResponse)(nil), // 1035: otg.UpdateConfigResponse - (*SetControlStateRequest)(nil), // 1036: otg.SetControlStateRequest - (*SetControlStateResponse)(nil), // 1037: otg.SetControlStateResponse - (*SetControlActionRequest)(nil), // 1038: otg.SetControlActionRequest - (*SetControlActionResponse)(nil), // 1039: otg.SetControlActionResponse - (*GetMetricsRequest)(nil), // 1040: otg.GetMetricsRequest - (*GetMetricsResponse)(nil), // 1041: otg.GetMetricsResponse - (*GetStatesRequest)(nil), // 1042: otg.GetStatesRequest - (*GetStatesResponse)(nil), // 1043: otg.GetStatesResponse - (*GetCaptureRequest)(nil), // 1044: otg.GetCaptureRequest - (*GetCaptureResponse)(nil), // 1045: otg.GetCaptureResponse - (*GetVersionResponse)(nil), // 1046: otg.GetVersionResponse - (*LagProtocol_Choice)(nil), // 1047: otg.LagProtocol.Choice - (*LagPortLacp_ActorActivity)(nil), // 1048: otg.LagPortLacp.ActorActivity - (*EthernetConnection_Choice)(nil), // 1049: otg.EthernetConnection.Choice - (*DeviceVlan_Tpid)(nil), // 1050: otg.DeviceVlan.Tpid - (*DeviceIpv4GatewayMAC_Choice)(nil), // 1051: otg.DeviceIpv4GatewayMAC.Choice - (*DeviceIpv6GatewayMAC_Choice)(nil), // 1052: otg.DeviceIpv6GatewayMAC.Choice - (*Layer1_Speed)(nil), // 1053: otg.Layer1.Speed - (*Layer1_Media)(nil), // 1054: otg.Layer1.Media - (*Layer1FlowControl_Choice)(nil), // 1055: otg.Layer1FlowControl.Choice - (*Capture_Format)(nil), // 1056: otg.Capture.Format - (*CaptureFilter_Choice)(nil), // 1057: otg.CaptureFilter.Choice - (*IsisInterface_NetworkType)(nil), // 1058: otg.IsisInterface.NetworkType - (*IsisInterface_LevelType)(nil), // 1059: otg.IsisInterface.LevelType - (*IsisInterfaceAuthentication_AuthType)(nil), // 1060: otg.IsisInterfaceAuthentication.AuthType - (*IsisAuthenticationBase_AuthType)(nil), // 1061: otg.IsisAuthenticationBase.AuthType - (*IsisV4RouteRange_OriginType)(nil), // 1062: otg.IsisV4RouteRange.OriginType - (*IsisV4RouteRange_RedistributionType)(nil), // 1063: otg.IsisV4RouteRange.RedistributionType - (*IsisV6RouteRange_OriginType)(nil), // 1064: otg.IsisV6RouteRange.OriginType - (*IsisV6RouteRange_RedistributionType)(nil), // 1065: otg.IsisV6RouteRange.RedistributionType - (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1066: otg.DeviceBgpMessageHeaderError.Subcode - (*DeviceBgpOpenMessageError_Subcode)(nil), // 1067: otg.DeviceBgpOpenMessageError.Subcode - (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1068: otg.DeviceBgpUpdateMessageError.Subcode - (*DeviceBgpCeaseError_Subcode)(nil), // 1069: otg.DeviceBgpCeaseError.Subcode - (*BgpV4Peer_AsType)(nil), // 1070: otg.BgpV4Peer.AsType - (*BgpV4Peer_AsNumberWidth)(nil), // 1071: otg.BgpV4Peer.AsNumberWidth - (*BgpV4EthernetSegment_ActiveMode)(nil), // 1072: otg.BgpV4EthernetSegment.ActiveMode - (*BgpRouteAdvanced_Origin)(nil), // 1073: otg.BgpRouteAdvanced.Origin - (*BgpCommunity_Type)(nil), // 1074: otg.BgpCommunity.Type - (*BgpExtCommunity_Type)(nil), // 1075: otg.BgpExtCommunity.Type - (*BgpExtCommunity_Subtype)(nil), // 1076: otg.BgpExtCommunity.Subtype - (*BgpAsPath_AsSetMode)(nil), // 1077: otg.BgpAsPath.AsSetMode - (*BgpAsPathSegment_Type)(nil), // 1078: otg.BgpAsPathSegment.Type - (*BgpV4EvpnEvis_Choice)(nil), // 1079: otg.BgpV4EvpnEvis.Choice - (*BgpV4EviVxlan_ReplicationType)(nil), // 1080: otg.BgpV4EviVxlan.ReplicationType - (*BgpRouteDistinguisher_RdType)(nil), // 1081: otg.BgpRouteDistinguisher.RdType - (*BgpRouteTarget_RtType)(nil), // 1082: otg.BgpRouteTarget.RtType - (*BgpV4RouteRange_NextHopMode)(nil), // 1083: otg.BgpV4RouteRange.NextHopMode - (*BgpV4RouteRange_NextHopAddressType)(nil), // 1084: otg.BgpV4RouteRange.NextHopAddressType - (*BgpV6RouteRange_NextHopMode)(nil), // 1085: otg.BgpV6RouteRange.NextHopMode - (*BgpV6RouteRange_NextHopAddressType)(nil), // 1086: otg.BgpV6RouteRange.NextHopAddressType - (*BgpSrteV4Policy_NextHopMode)(nil), // 1087: otg.BgpSrteV4Policy.NextHopMode - (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1088: otg.BgpSrteV4Policy.NextHopAddressType - (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1089: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily - (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1090: otg.BgpSrteBindingSubTlv.BindingSidType - (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1091: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy - (*BgpSrteSegment_SegmentType)(nil), // 1092: otg.BgpSrteSegment.SegmentType - (*BgpSrteV6Policy_NextHopMode)(nil), // 1093: otg.BgpSrteV6Policy.NextHopMode - (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1094: otg.BgpSrteV6Policy.NextHopAddressType - (*BgpV6Peer_AsType)(nil), // 1095: otg.BgpV6Peer.AsType - (*BgpV6Peer_AsNumberWidth)(nil), // 1096: otg.BgpV6Peer.AsNumberWidth - (*BgpV6EthernetSegment_ActiveMode)(nil), // 1097: otg.BgpV6EthernetSegment.ActiveMode - (*BgpV6EvpnEvis_Choice)(nil), // 1098: otg.BgpV6EvpnEvis.Choice - (*BgpV6EviVxlan_ReplicationType)(nil), // 1099: otg.BgpV6EviVxlan.ReplicationType - (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1100: otg.VxlanV4TunnelDestinationIPMode.Choice - (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1101: otg.VxlanV6TunnelDestinationIPMode.Choice - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1102: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle - (*RsvpEro_PrependNeighborIp)(nil), // 1103: otg.RsvpEro.PrependNeighborIp - (*RsvpEroSubobject_Type)(nil), // 1104: otg.RsvpEroSubobject.Type - (*RsvpEroSubobject_HopType)(nil), // 1105: otg.RsvpEroSubobject.HopType - (*FlowTxRx_Choice)(nil), // 1106: otg.FlowTxRx.Choice - (*FlowRouter_Mode)(nil), // 1107: otg.FlowRouter.Mode - (*FlowHeader_Choice)(nil), // 1108: otg.FlowHeader.Choice - (*FlowIpv4Priority_Choice)(nil), // 1109: otg.FlowIpv4Priority.Choice - (*FlowIcmp_Choice)(nil), // 1110: otg.FlowIcmp.Choice - (*FlowIcmpv6_Choice)(nil), // 1111: otg.FlowIcmpv6.Choice - (*FlowSize_Choice)(nil), // 1112: otg.FlowSize.Choice - (*FlowSizeWeightPairs_Choice)(nil), // 1113: otg.FlowSizeWeightPairs.Choice - (*FlowSizeWeightPairs_Predefined)(nil), // 1114: otg.FlowSizeWeightPairs.Predefined - (*FlowRate_Choice)(nil), // 1115: otg.FlowRate.Choice - (*FlowDuration_Choice)(nil), // 1116: otg.FlowDuration.Choice - (*FlowDelay_Choice)(nil), // 1117: otg.FlowDelay.Choice - (*FlowDurationInterBurstGap_Choice)(nil), // 1118: otg.FlowDurationInterBurstGap.Choice - (*FlowLatencyMetrics_Mode)(nil), // 1119: otg.FlowLatencyMetrics.Mode - (*FlowRxTxRatio_Choice)(nil), // 1120: otg.FlowRxTxRatio.Choice - (*EventRequest_Type)(nil), // 1121: otg.EventRequest.Type - (*LldpConnection_Choice)(nil), // 1122: otg.LldpConnection.Choice - (*LldpChassisId_Choice)(nil), // 1123: otg.LldpChassisId.Choice - (*LldpPortId_Choice)(nil), // 1124: otg.LldpPortId.Choice - (*LldpChassisMacSubType_Choice)(nil), // 1125: otg.LldpChassisMacSubType.Choice - (*LldpPortInterfaceNameSubType_Choice)(nil), // 1126: otg.LldpPortInterfaceNameSubType.Choice - (*LldpSystemName_Choice)(nil), // 1127: otg.LldpSystemName.Choice - (*Error_Kind)(nil), // 1128: otg.Error.Kind - (*ConfigUpdate_Choice)(nil), // 1129: otg.ConfigUpdate.Choice - (*FlowsUpdate_PropertyNames)(nil), // 1130: otg.FlowsUpdate.PropertyNames - (*ControlState_Choice)(nil), // 1131: otg.ControlState.Choice - (*StatePort_Choice)(nil), // 1132: otg.StatePort.Choice - (*StateTraffic_Choice)(nil), // 1133: otg.StateTraffic.Choice - (*StateProtocol_Choice)(nil), // 1134: otg.StateProtocol.Choice - (*StatePortLink_State)(nil), // 1135: otg.StatePortLink.State - (*StatePortCapture_State)(nil), // 1136: otg.StatePortCapture.State - (*StateTrafficFlowTransmit_State)(nil), // 1137: otg.StateTrafficFlowTransmit.State - (*StateProtocolAll_State)(nil), // 1138: otg.StateProtocolAll.State - (*StateProtocolRoute_State)(nil), // 1139: otg.StateProtocolRoute.State - (*StateProtocolLacp_Choice)(nil), // 1140: otg.StateProtocolLacp.Choice - (*StateProtocolLacpAdmin_State)(nil), // 1141: otg.StateProtocolLacpAdmin.State - (*ControlAction_Choice)(nil), // 1142: otg.ControlAction.Choice - (*ActionResponse_Choice)(nil), // 1143: otg.ActionResponse.Choice - (*ActionProtocol_Choice)(nil), // 1144: otg.ActionProtocol.Choice - (*ActionResponseProtocol_Choice)(nil), // 1145: otg.ActionResponseProtocol.Choice - (*ActionProtocolIpv4_Choice)(nil), // 1146: otg.ActionProtocolIpv4.Choice - (*ActionResponseProtocolIpv4_Choice)(nil), // 1147: otg.ActionResponseProtocolIpv4.Choice - (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1148: otg.ActionResponseProtocolIpv4PingResponse.Result - (*ActionProtocolIpv6_Choice)(nil), // 1149: otg.ActionProtocolIpv6.Choice - (*ActionResponseProtocolIpv6_Choice)(nil), // 1150: otg.ActionResponseProtocolIpv6.Choice - (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1151: otg.ActionResponseProtocolIpv6PingResponse.Result - (*ActionProtocolBgp_Choice)(nil), // 1152: otg.ActionProtocolBgp.Choice - (*ActionProtocolBgpNotification_Choice)(nil), // 1153: otg.ActionProtocolBgpNotification.Choice - (*MetricsRequest_Choice)(nil), // 1154: otg.MetricsRequest.Choice - (*MetricsResponse_Choice)(nil), // 1155: otg.MetricsResponse.Choice - (*PortMetricsRequest_ColumnNames)(nil), // 1156: otg.PortMetricsRequest.ColumnNames - (*PortMetric_Link)(nil), // 1157: otg.PortMetric.Link - (*PortMetric_Capture)(nil), // 1158: otg.PortMetric.Capture - (*PortMetric_Transmit)(nil), // 1159: otg.PortMetric.Transmit - (*FlowMetricsRequest_MetricNames)(nil), // 1160: otg.FlowMetricsRequest.MetricNames - (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1161: otg.FlowTaggedMetricsFilter.MetricNames - (*FlowMetric_Transmit)(nil), // 1162: otg.FlowMetric.Transmit - (*FlowMetricTagValue_Choice)(nil), // 1163: otg.FlowMetricTagValue.Choice - (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1164: otg.Bgpv4MetricsRequest.ColumnNames - (*Bgpv4Metric_SessionState)(nil), // 1165: otg.Bgpv4Metric.SessionState - (*Bgpv4Metric_FsmState)(nil), // 1166: otg.Bgpv4Metric.FsmState - (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1167: otg.Bgpv6MetricsRequest.ColumnNames - (*Bgpv6Metric_SessionState)(nil), // 1168: otg.Bgpv6Metric.SessionState - (*Bgpv6Metric_FsmState)(nil), // 1169: otg.Bgpv6Metric.FsmState - (*IsisMetricsRequest_ColumnNames)(nil), // 1170: otg.IsisMetricsRequest.ColumnNames - (*LagMetricsRequest_ColumnNames)(nil), // 1171: otg.LagMetricsRequest.ColumnNames - (*LagMetric_OperStatus)(nil), // 1172: otg.LagMetric.OperStatus - (*LacpMetricsRequest_ColumnNames)(nil), // 1173: otg.LacpMetricsRequest.ColumnNames - (*LacpMetric_Activity)(nil), // 1174: otg.LacpMetric.Activity - (*LacpMetric_Timeout)(nil), // 1175: otg.LacpMetric.Timeout - (*LacpMetric_Synchronization)(nil), // 1176: otg.LacpMetric.Synchronization - (*LldpMetricsRequest_ColumnNames)(nil), // 1177: otg.LldpMetricsRequest.ColumnNames - (*RsvpMetricsRequest_ColumnNames)(nil), // 1178: otg.RsvpMetricsRequest.ColumnNames - (*StatesRequest_Choice)(nil), // 1179: otg.StatesRequest.Choice - (*StatesResponse_Choice)(nil), // 1180: otg.StatesResponse.Choice - (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1181: otg.BgpPrefixStateRequest.PrefixFilters - (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1182: otg.BgpPrefixIpv4UnicastFilter.Origin - (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1183: otg.BgpPrefixIpv6UnicastFilter.Origin - (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1184: otg.BgpPrefixIpv4UnicastState.Origin - (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1185: otg.BgpPrefixIpv6UnicastState.Origin - (*ResultBgpCommunity_Type)(nil), // 1186: otg.ResultBgpCommunity.Type - (*ResultBgpAsPathSegment_Type)(nil), // 1187: otg.ResultBgpAsPathSegment.Type - (*IsisLspState_PduType)(nil), // 1188: otg.IsisLspState.PduType - (*IsisLspV4Prefix_RedistributionType)(nil), // 1189: otg.IsisLspV4Prefix.RedistributionType - (*IsisLspV4Prefix_OriginType)(nil), // 1190: otg.IsisLspV4Prefix.OriginType - (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1191: otg.IsisLspExtendedV4Prefix.RedistributionType - (*IsisLspV6Prefix_RedistributionType)(nil), // 1192: otg.IsisLspV6Prefix.RedistributionType - (*IsisLspV6Prefix_OriginType)(nil), // 1193: otg.IsisLspV6Prefix.OriginType - (*LldpNeighborsState_ChassisIdType)(nil), // 1194: otg.LldpNeighborsState.ChassisIdType - (*LldpNeighborsState_PortIdType)(nil), // 1195: otg.LldpNeighborsState.PortIdType - (*LldpCapabilityState_CapabilityName)(nil), // 1196: otg.LldpCapabilityState.CapabilityName - (*RsvpLspState_SessionStatus)(nil), // 1197: otg.RsvpLspState.SessionStatus - (*RsvpLspState_LastFlapReason)(nil), // 1198: otg.RsvpLspState.LastFlapReason - (*RsvpLspIpv4Ero_Type)(nil), // 1199: otg.RsvpLspIpv4Ero.Type - (*PatternFlowEthernetDst_Choice)(nil), // 1200: otg.PatternFlowEthernetDst.Choice - (*PatternFlowEthernetSrc_Choice)(nil), // 1201: otg.PatternFlowEthernetSrc.Choice - (*PatternFlowEthernetEtherType_Choice)(nil), // 1202: otg.PatternFlowEthernetEtherType.Choice - (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1203: otg.PatternFlowEthernetPfcQueue.Choice - (*PatternFlowVlanPriority_Choice)(nil), // 1204: otg.PatternFlowVlanPriority.Choice - (*PatternFlowVlanCfi_Choice)(nil), // 1205: otg.PatternFlowVlanCfi.Choice - (*PatternFlowVlanId_Choice)(nil), // 1206: otg.PatternFlowVlanId.Choice - (*PatternFlowVlanTpid_Choice)(nil), // 1207: otg.PatternFlowVlanTpid.Choice - (*PatternFlowVxlanFlags_Choice)(nil), // 1208: otg.PatternFlowVxlanFlags.Choice - (*PatternFlowVxlanReserved0_Choice)(nil), // 1209: otg.PatternFlowVxlanReserved0.Choice - (*PatternFlowVxlanVni_Choice)(nil), // 1210: otg.PatternFlowVxlanVni.Choice - (*PatternFlowVxlanReserved1_Choice)(nil), // 1211: otg.PatternFlowVxlanReserved1.Choice - (*PatternFlowIpv4Version_Choice)(nil), // 1212: otg.PatternFlowIpv4Version.Choice - (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1213: otg.PatternFlowIpv4HeaderLength.Choice - (*PatternFlowIpv4TotalLength_Choice)(nil), // 1214: otg.PatternFlowIpv4TotalLength.Choice - (*PatternFlowIpv4Identification_Choice)(nil), // 1215: otg.PatternFlowIpv4Identification.Choice - (*PatternFlowIpv4Reserved_Choice)(nil), // 1216: otg.PatternFlowIpv4Reserved.Choice - (*PatternFlowIpv4DontFragment_Choice)(nil), // 1217: otg.PatternFlowIpv4DontFragment.Choice - (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1218: otg.PatternFlowIpv4MoreFragments.Choice - (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1219: otg.PatternFlowIpv4FragmentOffset.Choice - (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1220: otg.PatternFlowIpv4TimeToLive.Choice - (*PatternFlowIpv4Protocol_Choice)(nil), // 1221: otg.PatternFlowIpv4Protocol.Choice - (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1222: otg.PatternFlowIpv4HeaderChecksum.Choice - (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1223: otg.PatternFlowIpv4HeaderChecksum.Generated - (*PatternFlowIpv4Src_Choice)(nil), // 1224: otg.PatternFlowIpv4Src.Choice - (*PatternFlowIpv4Dst_Choice)(nil), // 1225: otg.PatternFlowIpv4Dst.Choice - (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1226: otg.PatternFlowIpv4PriorityRaw.Choice - (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1227: otg.PatternFlowIpv4DscpPhb.Choice - (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1228: otg.PatternFlowIpv4DscpEcn.Choice - (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1229: otg.PatternFlowIpv4TosPrecedence.Choice - (*PatternFlowIpv4TosDelay_Choice)(nil), // 1230: otg.PatternFlowIpv4TosDelay.Choice - (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1231: otg.PatternFlowIpv4TosThroughput.Choice - (*PatternFlowIpv4TosReliability_Choice)(nil), // 1232: otg.PatternFlowIpv4TosReliability.Choice - (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1233: otg.PatternFlowIpv4TosMonetary.Choice - (*PatternFlowIpv4TosUnused_Choice)(nil), // 1234: otg.PatternFlowIpv4TosUnused.Choice - (*PatternFlowIpv6Version_Choice)(nil), // 1235: otg.PatternFlowIpv6Version.Choice - (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1236: otg.PatternFlowIpv6TrafficClass.Choice - (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1237: otg.PatternFlowIpv6FlowLabel.Choice - (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1238: otg.PatternFlowIpv6PayloadLength.Choice - (*PatternFlowIpv6NextHeader_Choice)(nil), // 1239: otg.PatternFlowIpv6NextHeader.Choice - (*PatternFlowIpv6HopLimit_Choice)(nil), // 1240: otg.PatternFlowIpv6HopLimit.Choice - (*PatternFlowIpv6Src_Choice)(nil), // 1241: otg.PatternFlowIpv6Src.Choice - (*PatternFlowIpv6Dst_Choice)(nil), // 1242: otg.PatternFlowIpv6Dst.Choice - (*PatternFlowPfcPauseDst_Choice)(nil), // 1243: otg.PatternFlowPfcPauseDst.Choice - (*PatternFlowPfcPauseSrc_Choice)(nil), // 1244: otg.PatternFlowPfcPauseSrc.Choice - (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1245: otg.PatternFlowPfcPauseEtherType.Choice - (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1246: otg.PatternFlowPfcPauseControlOpCode.Choice - (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1247: otg.PatternFlowPfcPauseClassEnableVector.Choice - (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1248: otg.PatternFlowPfcPausePauseClass0.Choice - (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1249: otg.PatternFlowPfcPausePauseClass1.Choice - (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1250: otg.PatternFlowPfcPausePauseClass2.Choice - (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1251: otg.PatternFlowPfcPausePauseClass3.Choice - (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1252: otg.PatternFlowPfcPausePauseClass4.Choice - (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1253: otg.PatternFlowPfcPausePauseClass5.Choice - (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1254: otg.PatternFlowPfcPausePauseClass6.Choice - (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1255: otg.PatternFlowPfcPausePauseClass7.Choice - (*PatternFlowEthernetPauseDst_Choice)(nil), // 1256: otg.PatternFlowEthernetPauseDst.Choice - (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1257: otg.PatternFlowEthernetPauseSrc.Choice - (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1258: otg.PatternFlowEthernetPauseEtherType.Choice - (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1259: otg.PatternFlowEthernetPauseControlOpCode.Choice - (*PatternFlowEthernetPauseTime_Choice)(nil), // 1260: otg.PatternFlowEthernetPauseTime.Choice - (*PatternFlowTcpSrcPort_Choice)(nil), // 1261: otg.PatternFlowTcpSrcPort.Choice - (*PatternFlowTcpDstPort_Choice)(nil), // 1262: otg.PatternFlowTcpDstPort.Choice - (*PatternFlowTcpSeqNum_Choice)(nil), // 1263: otg.PatternFlowTcpSeqNum.Choice - (*PatternFlowTcpAckNum_Choice)(nil), // 1264: otg.PatternFlowTcpAckNum.Choice - (*PatternFlowTcpDataOffset_Choice)(nil), // 1265: otg.PatternFlowTcpDataOffset.Choice - (*PatternFlowTcpEcnNs_Choice)(nil), // 1266: otg.PatternFlowTcpEcnNs.Choice - (*PatternFlowTcpEcnCwr_Choice)(nil), // 1267: otg.PatternFlowTcpEcnCwr.Choice - (*PatternFlowTcpEcnEcho_Choice)(nil), // 1268: otg.PatternFlowTcpEcnEcho.Choice - (*PatternFlowTcpCtlUrg_Choice)(nil), // 1269: otg.PatternFlowTcpCtlUrg.Choice - (*PatternFlowTcpCtlAck_Choice)(nil), // 1270: otg.PatternFlowTcpCtlAck.Choice - (*PatternFlowTcpCtlPsh_Choice)(nil), // 1271: otg.PatternFlowTcpCtlPsh.Choice - (*PatternFlowTcpCtlRst_Choice)(nil), // 1272: otg.PatternFlowTcpCtlRst.Choice - (*PatternFlowTcpCtlSyn_Choice)(nil), // 1273: otg.PatternFlowTcpCtlSyn.Choice - (*PatternFlowTcpCtlFin_Choice)(nil), // 1274: otg.PatternFlowTcpCtlFin.Choice - (*PatternFlowTcpWindow_Choice)(nil), // 1275: otg.PatternFlowTcpWindow.Choice - (*PatternFlowUdpSrcPort_Choice)(nil), // 1276: otg.PatternFlowUdpSrcPort.Choice - (*PatternFlowUdpDstPort_Choice)(nil), // 1277: otg.PatternFlowUdpDstPort.Choice - (*PatternFlowUdpLength_Choice)(nil), // 1278: otg.PatternFlowUdpLength.Choice - (*PatternFlowUdpChecksum_Choice)(nil), // 1279: otg.PatternFlowUdpChecksum.Choice - (*PatternFlowUdpChecksum_Generated)(nil), // 1280: otg.PatternFlowUdpChecksum.Generated - (*PatternFlowGreChecksumPresent_Choice)(nil), // 1281: otg.PatternFlowGreChecksumPresent.Choice - (*PatternFlowGreReserved0_Choice)(nil), // 1282: otg.PatternFlowGreReserved0.Choice - (*PatternFlowGreVersion_Choice)(nil), // 1283: otg.PatternFlowGreVersion.Choice - (*PatternFlowGreProtocol_Choice)(nil), // 1284: otg.PatternFlowGreProtocol.Choice - (*PatternFlowGreChecksum_Choice)(nil), // 1285: otg.PatternFlowGreChecksum.Choice - (*PatternFlowGreChecksum_Generated)(nil), // 1286: otg.PatternFlowGreChecksum.Generated - (*PatternFlowGreReserved1_Choice)(nil), // 1287: otg.PatternFlowGreReserved1.Choice - (*PatternFlowGtpv1Version_Choice)(nil), // 1288: otg.PatternFlowGtpv1Version.Choice - (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1289: otg.PatternFlowGtpv1ProtocolType.Choice - (*PatternFlowGtpv1Reserved_Choice)(nil), // 1290: otg.PatternFlowGtpv1Reserved.Choice - (*PatternFlowGtpv1EFlag_Choice)(nil), // 1291: otg.PatternFlowGtpv1EFlag.Choice - (*PatternFlowGtpv1SFlag_Choice)(nil), // 1292: otg.PatternFlowGtpv1SFlag.Choice - (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1293: otg.PatternFlowGtpv1PnFlag.Choice - (*PatternFlowGtpv1MessageType_Choice)(nil), // 1294: otg.PatternFlowGtpv1MessageType.Choice - (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1295: otg.PatternFlowGtpv1MessageLength.Choice - (*PatternFlowGtpv1Teid_Choice)(nil), // 1296: otg.PatternFlowGtpv1Teid.Choice - (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1297: otg.PatternFlowGtpv1SquenceNumber.Choice - (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1298: otg.PatternFlowGtpv1NPduNumber.Choice - (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1299: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice - (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1300: otg.PatternFlowGtpExtensionExtensionLength.Choice - (*PatternFlowGtpExtensionContents_Choice)(nil), // 1301: otg.PatternFlowGtpExtensionContents.Choice - (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1302: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice - (*PatternFlowGtpv2Version_Choice)(nil), // 1303: otg.PatternFlowGtpv2Version.Choice - (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1304: otg.PatternFlowGtpv2PiggybackingFlag.Choice - (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1305: otg.PatternFlowGtpv2TeidFlag.Choice - (*PatternFlowGtpv2Spare1_Choice)(nil), // 1306: otg.PatternFlowGtpv2Spare1.Choice - (*PatternFlowGtpv2MessageType_Choice)(nil), // 1307: otg.PatternFlowGtpv2MessageType.Choice - (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1308: otg.PatternFlowGtpv2MessageLength.Choice - (*PatternFlowGtpv2Teid_Choice)(nil), // 1309: otg.PatternFlowGtpv2Teid.Choice - (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1310: otg.PatternFlowGtpv2SequenceNumber.Choice - (*PatternFlowGtpv2Spare2_Choice)(nil), // 1311: otg.PatternFlowGtpv2Spare2.Choice - (*PatternFlowArpHardwareType_Choice)(nil), // 1312: otg.PatternFlowArpHardwareType.Choice - (*PatternFlowArpProtocolType_Choice)(nil), // 1313: otg.PatternFlowArpProtocolType.Choice - (*PatternFlowArpHardwareLength_Choice)(nil), // 1314: otg.PatternFlowArpHardwareLength.Choice - (*PatternFlowArpProtocolLength_Choice)(nil), // 1315: otg.PatternFlowArpProtocolLength.Choice - (*PatternFlowArpOperation_Choice)(nil), // 1316: otg.PatternFlowArpOperation.Choice - (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1317: otg.PatternFlowArpSenderHardwareAddr.Choice - (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1318: otg.PatternFlowArpSenderProtocolAddr.Choice - (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1319: otg.PatternFlowArpTargetHardwareAddr.Choice - (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1320: otg.PatternFlowArpTargetProtocolAddr.Choice - (*PatternFlowIcmpEchoType_Choice)(nil), // 1321: otg.PatternFlowIcmpEchoType.Choice - (*PatternFlowIcmpEchoCode_Choice)(nil), // 1322: otg.PatternFlowIcmpEchoCode.Choice - (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1323: otg.PatternFlowIcmpEchoChecksum.Choice - (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1324: otg.PatternFlowIcmpEchoChecksum.Generated - (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1325: otg.PatternFlowIcmpEchoIdentifier.Choice - (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1326: otg.PatternFlowIcmpEchoSequenceNumber.Choice - (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1327: otg.PatternFlowIcmpCommonChecksum.Choice - (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1328: otg.PatternFlowIcmpCommonChecksum.Generated - (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1329: otg.PatternFlowIcmpNextFieldsIdentifier.Choice - (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1330: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice - (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1331: otg.PatternFlowIcmpv6EchoType.Choice - (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1332: otg.PatternFlowIcmpv6EchoCode.Choice - (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1333: otg.PatternFlowIcmpv6EchoIdentifier.Choice - (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1334: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice - (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1335: otg.PatternFlowIcmpv6EchoChecksum.Choice - (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1336: otg.PatternFlowIcmpv6EchoChecksum.Generated - (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1337: otg.PatternFlowIcmpv6CommonChecksum.Choice - (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1338: otg.PatternFlowIcmpv6CommonChecksum.Generated - (*PatternFlowPppAddress_Choice)(nil), // 1339: otg.PatternFlowPppAddress.Choice - (*PatternFlowPppControl_Choice)(nil), // 1340: otg.PatternFlowPppControl.Choice - (*PatternFlowPppProtocolType_Choice)(nil), // 1341: otg.PatternFlowPppProtocolType.Choice - (*PatternFlowIgmpv1Version_Choice)(nil), // 1342: otg.PatternFlowIgmpv1Version.Choice - (*PatternFlowIgmpv1Type_Choice)(nil), // 1343: otg.PatternFlowIgmpv1Type.Choice - (*PatternFlowIgmpv1Unused_Choice)(nil), // 1344: otg.PatternFlowIgmpv1Unused.Choice - (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1345: otg.PatternFlowIgmpv1Checksum.Choice - (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1346: otg.PatternFlowIgmpv1Checksum.Generated - (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1347: otg.PatternFlowIgmpv1GroupAddress.Choice - (*PatternFlowMplsLabel_Choice)(nil), // 1348: otg.PatternFlowMplsLabel.Choice - (*PatternFlowMplsTrafficClass_Choice)(nil), // 1349: otg.PatternFlowMplsTrafficClass.Choice - (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1350: otg.PatternFlowMplsBottomOfStack.Choice - (*PatternFlowMplsTimeToLive_Choice)(nil), // 1351: otg.PatternFlowMplsTimeToLive.Choice - (*emptypb.Empty)(nil), // 1352: google.protobuf.Empty + (BgpExtendedCommunity_Choice_Enum)(0), // 38: otg.BgpExtendedCommunity.Choice.Enum + (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 39: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 40: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 41: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 42: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 43: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 44: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + (BgpV6RouteRange_NextHopMode_Enum)(0), // 45: otg.BgpV6RouteRange.NextHopMode.Enum + (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 46: otg.BgpV6RouteRange.NextHopAddressType.Enum + (BgpSrteV4Policy_NextHopMode_Enum)(0), // 47: otg.BgpSrteV4Policy.NextHopMode.Enum + (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 48: otg.BgpSrteV4Policy.NextHopAddressType.Enum + (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 49: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 50: otg.BgpSrteBindingSubTlv.BindingSidType.Enum + (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 51: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + (BgpSrteSegment_SegmentType_Enum)(0), // 52: otg.BgpSrteSegment.SegmentType.Enum + (BgpSrteV6Policy_NextHopMode_Enum)(0), // 53: otg.BgpSrteV6Policy.NextHopMode.Enum + (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 54: otg.BgpSrteV6Policy.NextHopAddressType.Enum + (BgpV6Peer_AsType_Enum)(0), // 55: otg.BgpV6Peer.AsType.Enum + (BgpV6Peer_AsNumberWidth_Enum)(0), // 56: otg.BgpV6Peer.AsNumberWidth.Enum + (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 57: otg.BgpV6EthernetSegment.ActiveMode.Enum + (BgpV6EvpnEvis_Choice_Enum)(0), // 58: otg.BgpV6EvpnEvis.Choice.Enum + (BgpV6EviVxlan_ReplicationType_Enum)(0), // 59: otg.BgpV6EviVxlan.ReplicationType.Enum + (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 60: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 61: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 62: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + (RsvpEro_PrependNeighborIp_Enum)(0), // 63: otg.RsvpEro.PrependNeighborIp.Enum + (RsvpEroSubobject_Type_Enum)(0), // 64: otg.RsvpEroSubobject.Type.Enum + (RsvpEroSubobject_HopType_Enum)(0), // 65: otg.RsvpEroSubobject.HopType.Enum + (FlowTxRx_Choice_Enum)(0), // 66: otg.FlowTxRx.Choice.Enum + (FlowRouter_Mode_Enum)(0), // 67: otg.FlowRouter.Mode.Enum + (FlowHeader_Choice_Enum)(0), // 68: otg.FlowHeader.Choice.Enum + (FlowIpv4Priority_Choice_Enum)(0), // 69: otg.FlowIpv4Priority.Choice.Enum + (FlowIcmp_Choice_Enum)(0), // 70: otg.FlowIcmp.Choice.Enum + (FlowIcmpv6_Choice_Enum)(0), // 71: otg.FlowIcmpv6.Choice.Enum + (FlowSize_Choice_Enum)(0), // 72: otg.FlowSize.Choice.Enum + (FlowSizeWeightPairs_Choice_Enum)(0), // 73: otg.FlowSizeWeightPairs.Choice.Enum + (FlowSizeWeightPairs_Predefined_Enum)(0), // 74: otg.FlowSizeWeightPairs.Predefined.Enum + (FlowRate_Choice_Enum)(0), // 75: otg.FlowRate.Choice.Enum + (FlowDuration_Choice_Enum)(0), // 76: otg.FlowDuration.Choice.Enum + (FlowDelay_Choice_Enum)(0), // 77: otg.FlowDelay.Choice.Enum + (FlowDurationInterBurstGap_Choice_Enum)(0), // 78: otg.FlowDurationInterBurstGap.Choice.Enum + (FlowLatencyMetrics_Mode_Enum)(0), // 79: otg.FlowLatencyMetrics.Mode.Enum + (FlowRxTxRatio_Choice_Enum)(0), // 80: otg.FlowRxTxRatio.Choice.Enum + (EventRequest_Type_Enum)(0), // 81: otg.EventRequest.Type.Enum + (LldpConnection_Choice_Enum)(0), // 82: otg.LldpConnection.Choice.Enum + (LldpChassisId_Choice_Enum)(0), // 83: otg.LldpChassisId.Choice.Enum + (LldpPortId_Choice_Enum)(0), // 84: otg.LldpPortId.Choice.Enum + (LldpChassisMacSubType_Choice_Enum)(0), // 85: otg.LldpChassisMacSubType.Choice.Enum + (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 86: otg.LldpPortInterfaceNameSubType.Choice.Enum + (LldpSystemName_Choice_Enum)(0), // 87: otg.LldpSystemName.Choice.Enum + (Error_Kind_Enum)(0), // 88: otg.Error.Kind.Enum + (ConfigUpdate_Choice_Enum)(0), // 89: otg.ConfigUpdate.Choice.Enum + (FlowsUpdate_PropertyNames_Enum)(0), // 90: otg.FlowsUpdate.PropertyNames.Enum + (ControlState_Choice_Enum)(0), // 91: otg.ControlState.Choice.Enum + (StatePort_Choice_Enum)(0), // 92: otg.StatePort.Choice.Enum + (StateTraffic_Choice_Enum)(0), // 93: otg.StateTraffic.Choice.Enum + (StateProtocol_Choice_Enum)(0), // 94: otg.StateProtocol.Choice.Enum + (StatePortLink_State_Enum)(0), // 95: otg.StatePortLink.State.Enum + (StatePortCapture_State_Enum)(0), // 96: otg.StatePortCapture.State.Enum + (StateTrafficFlowTransmit_State_Enum)(0), // 97: otg.StateTrafficFlowTransmit.State.Enum + (StateProtocolAll_State_Enum)(0), // 98: otg.StateProtocolAll.State.Enum + (StateProtocolRoute_State_Enum)(0), // 99: otg.StateProtocolRoute.State.Enum + (StateProtocolLacp_Choice_Enum)(0), // 100: otg.StateProtocolLacp.Choice.Enum + (StateProtocolLacpAdmin_State_Enum)(0), // 101: otg.StateProtocolLacpAdmin.State.Enum + (ControlAction_Choice_Enum)(0), // 102: otg.ControlAction.Choice.Enum + (ActionResponse_Choice_Enum)(0), // 103: otg.ActionResponse.Choice.Enum + (ActionProtocol_Choice_Enum)(0), // 104: otg.ActionProtocol.Choice.Enum + (ActionResponseProtocol_Choice_Enum)(0), // 105: otg.ActionResponseProtocol.Choice.Enum + (ActionProtocolIpv4_Choice_Enum)(0), // 106: otg.ActionProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4_Choice_Enum)(0), // 107: otg.ActionResponseProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 108: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + (ActionProtocolIpv6_Choice_Enum)(0), // 109: otg.ActionProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6_Choice_Enum)(0), // 110: otg.ActionResponseProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 111: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + (ActionProtocolBgp_Choice_Enum)(0), // 112: otg.ActionProtocolBgp.Choice.Enum + (ActionProtocolBgpNotification_Choice_Enum)(0), // 113: otg.ActionProtocolBgpNotification.Choice.Enum + (MetricsRequest_Choice_Enum)(0), // 114: otg.MetricsRequest.Choice.Enum + (MetricsResponse_Choice_Enum)(0), // 115: otg.MetricsResponse.Choice.Enum + (PortMetricsRequest_ColumnNames_Enum)(0), // 116: otg.PortMetricsRequest.ColumnNames.Enum + (PortMetric_Link_Enum)(0), // 117: otg.PortMetric.Link.Enum + (PortMetric_Capture_Enum)(0), // 118: otg.PortMetric.Capture.Enum + (PortMetric_Transmit_Enum)(0), // 119: otg.PortMetric.Transmit.Enum + (FlowMetricsRequest_MetricNames_Enum)(0), // 120: otg.FlowMetricsRequest.MetricNames.Enum + (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 121: otg.FlowTaggedMetricsFilter.MetricNames.Enum + (FlowMetric_Transmit_Enum)(0), // 122: otg.FlowMetric.Transmit.Enum + (FlowMetricTagValue_Choice_Enum)(0), // 123: otg.FlowMetricTagValue.Choice.Enum + (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 124: otg.Bgpv4MetricsRequest.ColumnNames.Enum + (Bgpv4Metric_SessionState_Enum)(0), // 125: otg.Bgpv4Metric.SessionState.Enum + (Bgpv4Metric_FsmState_Enum)(0), // 126: otg.Bgpv4Metric.FsmState.Enum + (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 127: otg.Bgpv6MetricsRequest.ColumnNames.Enum + (Bgpv6Metric_SessionState_Enum)(0), // 128: otg.Bgpv6Metric.SessionState.Enum + (Bgpv6Metric_FsmState_Enum)(0), // 129: otg.Bgpv6Metric.FsmState.Enum + (IsisMetricsRequest_ColumnNames_Enum)(0), // 130: otg.IsisMetricsRequest.ColumnNames.Enum + (LagMetricsRequest_ColumnNames_Enum)(0), // 131: otg.LagMetricsRequest.ColumnNames.Enum + (LagMetric_OperStatus_Enum)(0), // 132: otg.LagMetric.OperStatus.Enum + (LacpMetricsRequest_ColumnNames_Enum)(0), // 133: otg.LacpMetricsRequest.ColumnNames.Enum + (LacpMetric_Activity_Enum)(0), // 134: otg.LacpMetric.Activity.Enum + (LacpMetric_Timeout_Enum)(0), // 135: otg.LacpMetric.Timeout.Enum + (LacpMetric_Synchronization_Enum)(0), // 136: otg.LacpMetric.Synchronization.Enum + (LldpMetricsRequest_ColumnNames_Enum)(0), // 137: otg.LldpMetricsRequest.ColumnNames.Enum + (RsvpMetricsRequest_ColumnNames_Enum)(0), // 138: otg.RsvpMetricsRequest.ColumnNames.Enum + (StatesRequest_Choice_Enum)(0), // 139: otg.StatesRequest.Choice.Enum + (StatesResponse_Choice_Enum)(0), // 140: otg.StatesResponse.Choice.Enum + (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 141: otg.BgpPrefixStateRequest.PrefixFilters.Enum + (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 142: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 143: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 144: otg.BgpPrefixIpv4UnicastState.Origin.Enum + (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 145: otg.BgpPrefixIpv6UnicastState.Origin.Enum + (ResultBgpCommunity_Type_Enum)(0), // 146: otg.ResultBgpCommunity.Type.Enum + (ResultBgpAsPathSegment_Type_Enum)(0), // 147: otg.ResultBgpAsPathSegment.Type.Enum + (IsisLspState_PduType_Enum)(0), // 148: otg.IsisLspState.PduType.Enum + (IsisLspV4Prefix_RedistributionType_Enum)(0), // 149: otg.IsisLspV4Prefix.RedistributionType.Enum + (IsisLspV4Prefix_OriginType_Enum)(0), // 150: otg.IsisLspV4Prefix.OriginType.Enum + (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 151: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + (IsisLspV6Prefix_RedistributionType_Enum)(0), // 152: otg.IsisLspV6Prefix.RedistributionType.Enum + (IsisLspV6Prefix_OriginType_Enum)(0), // 153: otg.IsisLspV6Prefix.OriginType.Enum + (LldpNeighborsState_ChassisIdType_Enum)(0), // 154: otg.LldpNeighborsState.ChassisIdType.Enum + (LldpNeighborsState_PortIdType_Enum)(0), // 155: otg.LldpNeighborsState.PortIdType.Enum + (LldpCapabilityState_CapabilityName_Enum)(0), // 156: otg.LldpCapabilityState.CapabilityName.Enum + (RsvpLspState_SessionStatus_Enum)(0), // 157: otg.RsvpLspState.SessionStatus.Enum + (RsvpLspState_LastFlapReason_Enum)(0), // 158: otg.RsvpLspState.LastFlapReason.Enum + (RsvpLspIpv4Ero_Type_Enum)(0), // 159: otg.RsvpLspIpv4Ero.Type.Enum + (PatternFlowEthernetDst_Choice_Enum)(0), // 160: otg.PatternFlowEthernetDst.Choice.Enum + (PatternFlowEthernetSrc_Choice_Enum)(0), // 161: otg.PatternFlowEthernetSrc.Choice.Enum + (PatternFlowEthernetEtherType_Choice_Enum)(0), // 162: otg.PatternFlowEthernetEtherType.Choice.Enum + (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 163: otg.PatternFlowEthernetPfcQueue.Choice.Enum + (PatternFlowVlanPriority_Choice_Enum)(0), // 164: otg.PatternFlowVlanPriority.Choice.Enum + (PatternFlowVlanCfi_Choice_Enum)(0), // 165: otg.PatternFlowVlanCfi.Choice.Enum + (PatternFlowVlanId_Choice_Enum)(0), // 166: otg.PatternFlowVlanId.Choice.Enum + (PatternFlowVlanTpid_Choice_Enum)(0), // 167: otg.PatternFlowVlanTpid.Choice.Enum + (PatternFlowVxlanFlags_Choice_Enum)(0), // 168: otg.PatternFlowVxlanFlags.Choice.Enum + (PatternFlowVxlanReserved0_Choice_Enum)(0), // 169: otg.PatternFlowVxlanReserved0.Choice.Enum + (PatternFlowVxlanVni_Choice_Enum)(0), // 170: otg.PatternFlowVxlanVni.Choice.Enum + (PatternFlowVxlanReserved1_Choice_Enum)(0), // 171: otg.PatternFlowVxlanReserved1.Choice.Enum + (PatternFlowIpv4Version_Choice_Enum)(0), // 172: otg.PatternFlowIpv4Version.Choice.Enum + (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 173: otg.PatternFlowIpv4HeaderLength.Choice.Enum + (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 174: otg.PatternFlowIpv4TotalLength.Choice.Enum + (PatternFlowIpv4Identification_Choice_Enum)(0), // 175: otg.PatternFlowIpv4Identification.Choice.Enum + (PatternFlowIpv4Reserved_Choice_Enum)(0), // 176: otg.PatternFlowIpv4Reserved.Choice.Enum + (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 177: otg.PatternFlowIpv4DontFragment.Choice.Enum + (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 178: otg.PatternFlowIpv4MoreFragments.Choice.Enum + (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 179: otg.PatternFlowIpv4FragmentOffset.Choice.Enum + (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 180: otg.PatternFlowIpv4TimeToLive.Choice.Enum + (PatternFlowIpv4Protocol_Choice_Enum)(0), // 181: otg.PatternFlowIpv4Protocol.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 182: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 183: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + (PatternFlowIpv4Src_Choice_Enum)(0), // 184: otg.PatternFlowIpv4Src.Choice.Enum + (PatternFlowIpv4Dst_Choice_Enum)(0), // 185: otg.PatternFlowIpv4Dst.Choice.Enum + (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 186: otg.PatternFlowIpv4PriorityRaw.Choice.Enum + (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 187: otg.PatternFlowIpv4DscpPhb.Choice.Enum + (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 188: otg.PatternFlowIpv4DscpEcn.Choice.Enum + (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 189: otg.PatternFlowIpv4TosPrecedence.Choice.Enum + (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 190: otg.PatternFlowIpv4TosDelay.Choice.Enum + (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 191: otg.PatternFlowIpv4TosThroughput.Choice.Enum + (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 192: otg.PatternFlowIpv4TosReliability.Choice.Enum + (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 193: otg.PatternFlowIpv4TosMonetary.Choice.Enum + (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 194: otg.PatternFlowIpv4TosUnused.Choice.Enum + (PatternFlowIpv6Version_Choice_Enum)(0), // 195: otg.PatternFlowIpv6Version.Choice.Enum + (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 196: otg.PatternFlowIpv6TrafficClass.Choice.Enum + (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 197: otg.PatternFlowIpv6FlowLabel.Choice.Enum + (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 198: otg.PatternFlowIpv6PayloadLength.Choice.Enum + (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 199: otg.PatternFlowIpv6NextHeader.Choice.Enum + (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 200: otg.PatternFlowIpv6HopLimit.Choice.Enum + (PatternFlowIpv6Src_Choice_Enum)(0), // 201: otg.PatternFlowIpv6Src.Choice.Enum + (PatternFlowIpv6Dst_Choice_Enum)(0), // 202: otg.PatternFlowIpv6Dst.Choice.Enum + (PatternFlowPfcPauseDst_Choice_Enum)(0), // 203: otg.PatternFlowPfcPauseDst.Choice.Enum + (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 204: otg.PatternFlowPfcPauseSrc.Choice.Enum + (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 205: otg.PatternFlowPfcPauseEtherType.Choice.Enum + (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 206: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 207: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 208: otg.PatternFlowPfcPausePauseClass0.Choice.Enum + (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 209: otg.PatternFlowPfcPausePauseClass1.Choice.Enum + (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 210: otg.PatternFlowPfcPausePauseClass2.Choice.Enum + (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 211: otg.PatternFlowPfcPausePauseClass3.Choice.Enum + (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 212: otg.PatternFlowPfcPausePauseClass4.Choice.Enum + (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 213: otg.PatternFlowPfcPausePauseClass5.Choice.Enum + (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 214: otg.PatternFlowPfcPausePauseClass6.Choice.Enum + (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 215: otg.PatternFlowPfcPausePauseClass7.Choice.Enum + (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 216: otg.PatternFlowEthernetPauseDst.Choice.Enum + (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 217: otg.PatternFlowEthernetPauseSrc.Choice.Enum + (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 218: otg.PatternFlowEthernetPauseEtherType.Choice.Enum + (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 219: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 220: otg.PatternFlowEthernetPauseTime.Choice.Enum + (PatternFlowTcpSrcPort_Choice_Enum)(0), // 221: otg.PatternFlowTcpSrcPort.Choice.Enum + (PatternFlowTcpDstPort_Choice_Enum)(0), // 222: otg.PatternFlowTcpDstPort.Choice.Enum + (PatternFlowTcpSeqNum_Choice_Enum)(0), // 223: otg.PatternFlowTcpSeqNum.Choice.Enum + (PatternFlowTcpAckNum_Choice_Enum)(0), // 224: otg.PatternFlowTcpAckNum.Choice.Enum + (PatternFlowTcpDataOffset_Choice_Enum)(0), // 225: otg.PatternFlowTcpDataOffset.Choice.Enum + (PatternFlowTcpEcnNs_Choice_Enum)(0), // 226: otg.PatternFlowTcpEcnNs.Choice.Enum + (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 227: otg.PatternFlowTcpEcnCwr.Choice.Enum + (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 228: otg.PatternFlowTcpEcnEcho.Choice.Enum + (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 229: otg.PatternFlowTcpCtlUrg.Choice.Enum + (PatternFlowTcpCtlAck_Choice_Enum)(0), // 230: otg.PatternFlowTcpCtlAck.Choice.Enum + (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 231: otg.PatternFlowTcpCtlPsh.Choice.Enum + (PatternFlowTcpCtlRst_Choice_Enum)(0), // 232: otg.PatternFlowTcpCtlRst.Choice.Enum + (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 233: otg.PatternFlowTcpCtlSyn.Choice.Enum + (PatternFlowTcpCtlFin_Choice_Enum)(0), // 234: otg.PatternFlowTcpCtlFin.Choice.Enum + (PatternFlowTcpWindow_Choice_Enum)(0), // 235: otg.PatternFlowTcpWindow.Choice.Enum + (PatternFlowUdpSrcPort_Choice_Enum)(0), // 236: otg.PatternFlowUdpSrcPort.Choice.Enum + (PatternFlowUdpDstPort_Choice_Enum)(0), // 237: otg.PatternFlowUdpDstPort.Choice.Enum + (PatternFlowUdpLength_Choice_Enum)(0), // 238: otg.PatternFlowUdpLength.Choice.Enum + (PatternFlowUdpChecksum_Choice_Enum)(0), // 239: otg.PatternFlowUdpChecksum.Choice.Enum + (PatternFlowUdpChecksum_Generated_Enum)(0), // 240: otg.PatternFlowUdpChecksum.Generated.Enum + (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 241: otg.PatternFlowGreChecksumPresent.Choice.Enum + (PatternFlowGreReserved0_Choice_Enum)(0), // 242: otg.PatternFlowGreReserved0.Choice.Enum + (PatternFlowGreVersion_Choice_Enum)(0), // 243: otg.PatternFlowGreVersion.Choice.Enum + (PatternFlowGreProtocol_Choice_Enum)(0), // 244: otg.PatternFlowGreProtocol.Choice.Enum + (PatternFlowGreChecksum_Choice_Enum)(0), // 245: otg.PatternFlowGreChecksum.Choice.Enum + (PatternFlowGreChecksum_Generated_Enum)(0), // 246: otg.PatternFlowGreChecksum.Generated.Enum + (PatternFlowGreReserved1_Choice_Enum)(0), // 247: otg.PatternFlowGreReserved1.Choice.Enum + (PatternFlowGtpv1Version_Choice_Enum)(0), // 248: otg.PatternFlowGtpv1Version.Choice.Enum + (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 249: otg.PatternFlowGtpv1ProtocolType.Choice.Enum + (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 250: otg.PatternFlowGtpv1Reserved.Choice.Enum + (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 251: otg.PatternFlowGtpv1EFlag.Choice.Enum + (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 252: otg.PatternFlowGtpv1SFlag.Choice.Enum + (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 253: otg.PatternFlowGtpv1PnFlag.Choice.Enum + (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 254: otg.PatternFlowGtpv1MessageType.Choice.Enum + (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 255: otg.PatternFlowGtpv1MessageLength.Choice.Enum + (PatternFlowGtpv1Teid_Choice_Enum)(0), // 256: otg.PatternFlowGtpv1Teid.Choice.Enum + (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 257: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 258: otg.PatternFlowGtpv1NPduNumber.Choice.Enum + (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 259: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 260: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 261: otg.PatternFlowGtpExtensionContents.Choice.Enum + (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 262: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + (PatternFlowGtpv2Version_Choice_Enum)(0), // 263: otg.PatternFlowGtpv2Version.Choice.Enum + (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 264: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 265: otg.PatternFlowGtpv2TeidFlag.Choice.Enum + (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 266: otg.PatternFlowGtpv2Spare1.Choice.Enum + (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 267: otg.PatternFlowGtpv2MessageType.Choice.Enum + (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 268: otg.PatternFlowGtpv2MessageLength.Choice.Enum + (PatternFlowGtpv2Teid_Choice_Enum)(0), // 269: otg.PatternFlowGtpv2Teid.Choice.Enum + (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 270: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 271: otg.PatternFlowGtpv2Spare2.Choice.Enum + (PatternFlowArpHardwareType_Choice_Enum)(0), // 272: otg.PatternFlowArpHardwareType.Choice.Enum + (PatternFlowArpProtocolType_Choice_Enum)(0), // 273: otg.PatternFlowArpProtocolType.Choice.Enum + (PatternFlowArpHardwareLength_Choice_Enum)(0), // 274: otg.PatternFlowArpHardwareLength.Choice.Enum + (PatternFlowArpProtocolLength_Choice_Enum)(0), // 275: otg.PatternFlowArpProtocolLength.Choice.Enum + (PatternFlowArpOperation_Choice_Enum)(0), // 276: otg.PatternFlowArpOperation.Choice.Enum + (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 277: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 278: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 279: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 280: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + (PatternFlowIcmpEchoType_Choice_Enum)(0), // 281: otg.PatternFlowIcmpEchoType.Choice.Enum + (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 282: otg.PatternFlowIcmpEchoCode.Choice.Enum + (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 283: otg.PatternFlowIcmpEchoChecksum.Choice.Enum + (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 284: otg.PatternFlowIcmpEchoChecksum.Generated.Enum + (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 285: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 286: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 287: otg.PatternFlowIcmpCommonChecksum.Choice.Enum + (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 288: otg.PatternFlowIcmpCommonChecksum.Generated.Enum + (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 289: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 290: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 291: otg.PatternFlowIcmpv6EchoType.Choice.Enum + (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 292: otg.PatternFlowIcmpv6EchoCode.Choice.Enum + (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 293: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 294: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 295: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 296: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 297: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 298: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + (PatternFlowPppAddress_Choice_Enum)(0), // 299: otg.PatternFlowPppAddress.Choice.Enum + (PatternFlowPppControl_Choice_Enum)(0), // 300: otg.PatternFlowPppControl.Choice.Enum + (PatternFlowPppProtocolType_Choice_Enum)(0), // 301: otg.PatternFlowPppProtocolType.Choice.Enum + (PatternFlowIgmpv1Version_Choice_Enum)(0), // 302: otg.PatternFlowIgmpv1Version.Choice.Enum + (PatternFlowIgmpv1Type_Choice_Enum)(0), // 303: otg.PatternFlowIgmpv1Type.Choice.Enum + (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 304: otg.PatternFlowIgmpv1Unused.Choice.Enum + (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 305: otg.PatternFlowIgmpv1Checksum.Choice.Enum + (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 306: otg.PatternFlowIgmpv1Checksum.Generated.Enum + (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 307: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + (PatternFlowMplsLabel_Choice_Enum)(0), // 308: otg.PatternFlowMplsLabel.Choice.Enum + (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 309: otg.PatternFlowMplsTrafficClass.Choice.Enum + (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 310: otg.PatternFlowMplsBottomOfStack.Choice.Enum + (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 311: otg.PatternFlowMplsTimeToLive.Choice.Enum + (*Config)(nil), // 312: otg.Config + (*ConfigOptions)(nil), // 313: otg.ConfigOptions + (*Port)(nil), // 314: otg.Port + (*PortOptions)(nil), // 315: otg.PortOptions + (*Lag)(nil), // 316: otg.Lag + (*LagPort)(nil), // 317: otg.LagPort + (*LagProtocol)(nil), // 318: otg.LagProtocol + (*LagProtocolStatic)(nil), // 319: otg.LagProtocolStatic + (*LagProtocolLacp)(nil), // 320: otg.LagProtocolLacp + (*LagPortLacp)(nil), // 321: otg.LagPortLacp + (*DeviceEthernetBase)(nil), // 322: otg.DeviceEthernetBase + (*DeviceEthernet)(nil), // 323: otg.DeviceEthernet + (*EthernetConnection)(nil), // 324: otg.EthernetConnection + (*DeviceVlan)(nil), // 325: otg.DeviceVlan + (*DeviceIpv4)(nil), // 326: otg.DeviceIpv4 + (*DeviceIpv4Loopback)(nil), // 327: otg.DeviceIpv4Loopback + (*DeviceIpv4GatewayMAC)(nil), // 328: otg.DeviceIpv4GatewayMAC + (*DeviceIpv6)(nil), // 329: otg.DeviceIpv6 + (*DeviceIpv6Loopback)(nil), // 330: otg.DeviceIpv6Loopback + (*DeviceIpv6GatewayMAC)(nil), // 331: otg.DeviceIpv6GatewayMAC + (*Layer1)(nil), // 332: otg.Layer1 + (*Layer1AutoNegotiation)(nil), // 333: otg.Layer1AutoNegotiation + (*Layer1FlowControl)(nil), // 334: otg.Layer1FlowControl + (*Layer1Ieee8023X)(nil), // 335: otg.Layer1Ieee8023x + (*Layer1Ieee8021Qbb)(nil), // 336: otg.Layer1Ieee8021qbb + (*Capture)(nil), // 337: otg.Capture + (*CaptureFilter)(nil), // 338: otg.CaptureFilter + (*CaptureCustom)(nil), // 339: otg.CaptureCustom + (*CaptureField)(nil), // 340: otg.CaptureField + (*CaptureEthernet)(nil), // 341: otg.CaptureEthernet + (*CaptureVlan)(nil), // 342: otg.CaptureVlan + (*CaptureIpv4)(nil), // 343: otg.CaptureIpv4 + (*CaptureIpv6)(nil), // 344: otg.CaptureIpv6 + (*Device)(nil), // 345: otg.Device + (*ProtocolOptions)(nil), // 346: otg.ProtocolOptions + (*DeviceIsisRouter)(nil), // 347: otg.DeviceIsisRouter + (*DeviceIsisMultiInstance)(nil), // 348: otg.DeviceIsisMultiInstance + (*IsisInterface)(nil), // 349: otg.IsisInterface + (*IsisInterfaceLevel)(nil), // 350: otg.IsisInterfaceLevel + (*IsisMT)(nil), // 351: otg.IsisMT + (*LinkStateTE)(nil), // 352: otg.LinkStateTE + (*LinkStatepriorityBandwidths)(nil), // 353: otg.LinkStatepriorityBandwidths + (*IsisInterfaceAuthentication)(nil), // 354: otg.IsisInterfaceAuthentication + (*IsisInterfaceAdvanced)(nil), // 355: otg.IsisInterfaceAdvanced + (*IsisInterfaceLinkProtection)(nil), // 356: otg.IsisInterfaceLinkProtection + (*IsisBasic)(nil), // 357: otg.IsisBasic + (*IsisAdvanced)(nil), // 358: otg.IsisAdvanced + (*IsisAuthentication)(nil), // 359: otg.IsisAuthentication + (*IsisAuthenticationBase)(nil), // 360: otg.IsisAuthenticationBase + (*IsisV4RouteRange)(nil), // 361: otg.IsisV4RouteRange + (*V4RouteAddress)(nil), // 362: otg.V4RouteAddress + (*V6RouteAddress)(nil), // 363: otg.V6RouteAddress + (*MACRouteAddress)(nil), // 364: otg.MACRouteAddress + (*IsisV6RouteRange)(nil), // 365: otg.IsisV6RouteRange + (*DeviceBgpRouter)(nil), // 366: otg.DeviceBgpRouter + (*DeviceBgpMessageHeaderError)(nil), // 367: otg.DeviceBgpMessageHeaderError + (*DeviceBgpOpenMessageError)(nil), // 368: otg.DeviceBgpOpenMessageError + (*DeviceBgpUpdateMessageError)(nil), // 369: otg.DeviceBgpUpdateMessageError + (*DeviceBgpHoldTimerExpired)(nil), // 370: otg.DeviceBgpHoldTimerExpired + (*DeviceBgpFiniteStateMachineError)(nil), // 371: otg.DeviceBgpFiniteStateMachineError + (*DeviceBgpCeaseError)(nil), // 372: otg.DeviceBgpCeaseError + (*DeviceBgpCustomError)(nil), // 373: otg.DeviceBgpCustomError + (*BgpV4Peer)(nil), // 374: otg.BgpV4Peer + (*BgpV4Interface)(nil), // 375: otg.BgpV4Interface + (*BgpV4EthernetSegment)(nil), // 376: otg.BgpV4EthernetSegment + (*BgpEthernetSegmentDfElection)(nil), // 377: otg.BgpEthernetSegmentDfElection + (*BgpRouteAdvanced)(nil), // 378: otg.BgpRouteAdvanced + (*BgpCommunity)(nil), // 379: otg.BgpCommunity + (*BgpExtCommunity)(nil), // 380: otg.BgpExtCommunity + (*BgpAsPath)(nil), // 381: otg.BgpAsPath + (*BgpAsPathSegment)(nil), // 382: otg.BgpAsPathSegment + (*BgpV4EvpnEvis)(nil), // 383: otg.BgpV4EvpnEvis + (*BgpV4EviVxlan)(nil), // 384: otg.BgpV4EviVxlan + (*BgpV4EviVxlanBroadcastDomain)(nil), // 385: otg.BgpV4EviVxlanBroadcastDomain + (*BgpCMacIpRange)(nil), // 386: otg.BgpCMacIpRange + (*BgpRouteDistinguisher)(nil), // 387: otg.BgpRouteDistinguisher + (*BgpRouteTarget)(nil), // 388: otg.BgpRouteTarget + (*BgpAdvanced)(nil), // 389: otg.BgpAdvanced + (*BgpCapability)(nil), // 390: otg.BgpCapability + (*BgpLearnedInformationFilter)(nil), // 391: otg.BgpLearnedInformationFilter + (*BgpV4RouteRange)(nil), // 392: otg.BgpV4RouteRange + (*BgpAddPath)(nil), // 393: otg.BgpAddPath + (*BgpExtendedCommunity)(nil), // 394: otg.BgpExtendedCommunity + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 395: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 396: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 397: otg.BgpExtendedCommunityTransitive2OctetAsType + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 398: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 399: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 400: otg.BgpExtendedCommunityTransitiveIpv4AddressType + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 401: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 402: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 403: otg.BgpExtendedCommunityTransitive4OctetAsType + (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 404: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 405: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 406: otg.BgpExtendedCommunityTransitiveOpaqueType + (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 407: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 408: otg.BgpExtendedCommunityTransitiveEvpnType + (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 409: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 410: otg.BgpExtendedCommunityNonTransitive2OctetAsType + (*BgpExtendedCommunityCustomType)(nil), // 411: otg.BgpExtendedCommunityCustomType + (*BgpV6RouteRange)(nil), // 412: otg.BgpV6RouteRange + (*BgpSrteV4Policy)(nil), // 413: otg.BgpSrteV4Policy + (*BgpSrteV4TunnelTlv)(nil), // 414: otg.BgpSrteV4TunnelTlv + (*BgpSrteRemoteEndpointSubTlv)(nil), // 415: otg.BgpSrteRemoteEndpointSubTlv + (*BgpSrteColorSubTlv)(nil), // 416: otg.BgpSrteColorSubTlv + (*BgpSrteBindingSubTlv)(nil), // 417: otg.BgpSrteBindingSubTlv + (*BgpSrtePreferenceSubTlv)(nil), // 418: otg.BgpSrtePreferenceSubTlv + (*BgpSrtePolicyPrioritySubTlv)(nil), // 419: otg.BgpSrtePolicyPrioritySubTlv + (*BgpSrtePolicyNameSubTlv)(nil), // 420: otg.BgpSrtePolicyNameSubTlv + (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 421: otg.BgpSrteExplicitNullLabelPolicySubTlv + (*BgpSrteSegmentList)(nil), // 422: otg.BgpSrteSegmentList + (*BgpSrteSegment)(nil), // 423: otg.BgpSrteSegment + (*BgpSrteSrMplsSid)(nil), // 424: otg.BgpSrteSrMplsSid + (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 425: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + (*BgpSrteSegmentATypeSubTlv)(nil), // 426: otg.BgpSrteSegmentATypeSubTlv + (*BgpSrteSegmentBTypeSubTlv)(nil), // 427: otg.BgpSrteSegmentBTypeSubTlv + (*BgpSrteSegmentCTypeSubTlv)(nil), // 428: otg.BgpSrteSegmentCTypeSubTlv + (*BgpSrteSegmentDTypeSubTlv)(nil), // 429: otg.BgpSrteSegmentDTypeSubTlv + (*BgpSrteSegmentETypeSubTlv)(nil), // 430: otg.BgpSrteSegmentETypeSubTlv + (*BgpSrteSegmentFTypeSubTlv)(nil), // 431: otg.BgpSrteSegmentFTypeSubTlv + (*BgpSrteSegmentGTypeSubTlv)(nil), // 432: otg.BgpSrteSegmentGTypeSubTlv + (*BgpSrteSegmentHTypeSubTlv)(nil), // 433: otg.BgpSrteSegmentHTypeSubTlv + (*BgpSrteSegmentITypeSubTlv)(nil), // 434: otg.BgpSrteSegmentITypeSubTlv + (*BgpSrteSegmentJTypeSubTlv)(nil), // 435: otg.BgpSrteSegmentJTypeSubTlv + (*BgpSrteSegmentKTypeSubTlv)(nil), // 436: otg.BgpSrteSegmentKTypeSubTlv + (*BgpSrteV6Policy)(nil), // 437: otg.BgpSrteV6Policy + (*BgpSrteV6TunnelTlv)(nil), // 438: otg.BgpSrteV6TunnelTlv + (*BgpGracefulRestart)(nil), // 439: otg.BgpGracefulRestart + (*BgpV6Peer)(nil), // 440: otg.BgpV6Peer + (*BgpV6Interface)(nil), // 441: otg.BgpV6Interface + (*BgpV6SegmentRouting)(nil), // 442: otg.BgpV6SegmentRouting + (*BgpV6EthernetSegment)(nil), // 443: otg.BgpV6EthernetSegment + (*BgpV6EvpnEvis)(nil), // 444: otg.BgpV6EvpnEvis + (*BgpV6EviVxlan)(nil), // 445: otg.BgpV6EviVxlan + (*BgpV6EviVxlanBroadcastDomain)(nil), // 446: otg.BgpV6EviVxlanBroadcastDomain + (*DeviceVxlan)(nil), // 447: otg.DeviceVxlan + (*VxlanV4Tunnel)(nil), // 448: otg.VxlanV4Tunnel + (*VxlanV6Tunnel)(nil), // 449: otg.VxlanV6Tunnel + (*VxlanV4TunnelDestinationIPMode)(nil), // 450: otg.VxlanV4TunnelDestinationIPMode + (*VxlanV6TunnelDestinationIPMode)(nil), // 451: otg.VxlanV6TunnelDestinationIPMode + (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 452: otg.VxlanV4TunnelDestinationIPModeUnicast + (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 453: otg.VxlanV6TunnelDestinationIPModeUnicast + (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 454: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 455: otg.VxlanV4TunnelDestinationIPModeUnicastVtep + (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 456: otg.VxlanV6TunnelDestinationIPModeUnicastVtep + (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 457: otg.VxlanV4TunnelDestinationIPModeMulticast + (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 458: otg.VxlanV6TunnelDestinationIPModeMulticast + (*DeviceRsvp)(nil), // 459: otg.DeviceRsvp + (*RsvpIpv4Interface)(nil), // 460: otg.RsvpIpv4Interface + (*RsvpLspIpv4Interface)(nil), // 461: otg.RsvpLspIpv4Interface + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 462: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 463: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + (*RsvpSessionAttribute)(nil), // 464: otg.RsvpSessionAttribute + (*RsvpResourceAffinities)(nil), // 465: otg.RsvpResourceAffinities + (*RsvpTspec)(nil), // 466: otg.RsvpTspec + (*RsvpFastReroute)(nil), // 467: otg.RsvpFastReroute + (*RsvpEro)(nil), // 468: otg.RsvpEro + (*RsvpEroSubobject)(nil), // 469: otg.RsvpEroSubobject + (*Flow)(nil), // 470: otg.Flow + (*FlowTxRx)(nil), // 471: otg.FlowTxRx + (*FlowPort)(nil), // 472: otg.FlowPort + (*FlowRouter)(nil), // 473: otg.FlowRouter + (*FlowHeader)(nil), // 474: otg.FlowHeader + (*FlowCustom)(nil), // 475: otg.FlowCustom + (*FlowCustomMetricTag)(nil), // 476: otg.FlowCustomMetricTag + (*FlowEthernet)(nil), // 477: otg.FlowEthernet + (*FlowVlan)(nil), // 478: otg.FlowVlan + (*FlowVxlan)(nil), // 479: otg.FlowVxlan + (*FlowIpv4)(nil), // 480: otg.FlowIpv4 + (*FlowIpv4Priority)(nil), // 481: otg.FlowIpv4Priority + (*FlowIpv4Dscp)(nil), // 482: otg.FlowIpv4Dscp + (*FlowIpv4Tos)(nil), // 483: otg.FlowIpv4Tos + (*FlowIpv6)(nil), // 484: otg.FlowIpv6 + (*FlowPfcPause)(nil), // 485: otg.FlowPfcPause + (*FlowEthernetPause)(nil), // 486: otg.FlowEthernetPause + (*FlowTcp)(nil), // 487: otg.FlowTcp + (*FlowUdp)(nil), // 488: otg.FlowUdp + (*FlowGre)(nil), // 489: otg.FlowGre + (*FlowGtpv1)(nil), // 490: otg.FlowGtpv1 + (*FlowGtpExtension)(nil), // 491: otg.FlowGtpExtension + (*FlowGtpv2)(nil), // 492: otg.FlowGtpv2 + (*FlowArp)(nil), // 493: otg.FlowArp + (*FlowIcmp)(nil), // 494: otg.FlowIcmp + (*FlowIcmpEcho)(nil), // 495: otg.FlowIcmpEcho + (*FlowIcmpv6)(nil), // 496: otg.FlowIcmpv6 + (*FlowIcmpv6Echo)(nil), // 497: otg.FlowIcmpv6Echo + (*FlowPpp)(nil), // 498: otg.FlowPpp + (*FlowIgmpv1)(nil), // 499: otg.FlowIgmpv1 + (*FlowMpls)(nil), // 500: otg.FlowMpls + (*FlowSize)(nil), // 501: otg.FlowSize + (*FlowSizeIncrement)(nil), // 502: otg.FlowSizeIncrement + (*FlowSizeRandom)(nil), // 503: otg.FlowSizeRandom + (*FlowSizeWeightPairs)(nil), // 504: otg.FlowSizeWeightPairs + (*FlowSizeWeightPairsCustom)(nil), // 505: otg.FlowSizeWeightPairsCustom + (*FlowRate)(nil), // 506: otg.FlowRate + (*FlowDuration)(nil), // 507: otg.FlowDuration + (*FlowContinuous)(nil), // 508: otg.FlowContinuous + (*FlowDelay)(nil), // 509: otg.FlowDelay + (*FlowFixedPackets)(nil), // 510: otg.FlowFixedPackets + (*FlowFixedSeconds)(nil), // 511: otg.FlowFixedSeconds + (*FlowBurst)(nil), // 512: otg.FlowBurst + (*FlowDurationInterBurstGap)(nil), // 513: otg.FlowDurationInterBurstGap + (*FlowMetrics)(nil), // 514: otg.FlowMetrics + (*FlowLatencyMetrics)(nil), // 515: otg.FlowLatencyMetrics + (*FlowPredefinedTags)(nil), // 516: otg.FlowPredefinedTags + (*FlowRxTxRatio)(nil), // 517: otg.FlowRxTxRatio + (*FlowRxTxRatioRxCount)(nil), // 518: otg.FlowRxTxRatioRxCount + (*Event)(nil), // 519: otg.Event + (*EventRxRateThreshold)(nil), // 520: otg.EventRxRateThreshold + (*EventLink)(nil), // 521: otg.EventLink + (*EventRouteAdvertiseWithdraw)(nil), // 522: otg.EventRouteAdvertiseWithdraw + (*EventRequest)(nil), // 523: otg.EventRequest + (*EventSubscription)(nil), // 524: otg.EventSubscription + (*Lldp)(nil), // 525: otg.Lldp + (*LldpConnection)(nil), // 526: otg.LldpConnection + (*LldpChassisId)(nil), // 527: otg.LldpChassisId + (*LldpPortId)(nil), // 528: otg.LldpPortId + (*LldpChassisMacSubType)(nil), // 529: otg.LldpChassisMacSubType + (*LldpPortInterfaceNameSubType)(nil), // 530: otg.LldpPortInterfaceNameSubType + (*LldpSystemName)(nil), // 531: otg.LldpSystemName + (*Error)(nil), // 532: otg.Error + (*Warning)(nil), // 533: otg.Warning + (*ConfigUpdate)(nil), // 534: otg.ConfigUpdate + (*FlowsUpdate)(nil), // 535: otg.FlowsUpdate + (*ControlState)(nil), // 536: otg.ControlState + (*StatePort)(nil), // 537: otg.StatePort + (*StateTraffic)(nil), // 538: otg.StateTraffic + (*StateProtocol)(nil), // 539: otg.StateProtocol + (*StatePortLink)(nil), // 540: otg.StatePortLink + (*StatePortCapture)(nil), // 541: otg.StatePortCapture + (*StateTrafficFlowTransmit)(nil), // 542: otg.StateTrafficFlowTransmit + (*StateProtocolAll)(nil), // 543: otg.StateProtocolAll + (*StateProtocolRoute)(nil), // 544: otg.StateProtocolRoute + (*StateProtocolLacp)(nil), // 545: otg.StateProtocolLacp + (*StateProtocolLacpAdmin)(nil), // 546: otg.StateProtocolLacpAdmin + (*ControlAction)(nil), // 547: otg.ControlAction + (*ControlActionResponse)(nil), // 548: otg.ControlActionResponse + (*ActionResponse)(nil), // 549: otg.ActionResponse + (*ActionProtocol)(nil), // 550: otg.ActionProtocol + (*ActionResponseProtocol)(nil), // 551: otg.ActionResponseProtocol + (*ActionProtocolIpv4)(nil), // 552: otg.ActionProtocolIpv4 + (*ActionResponseProtocolIpv4)(nil), // 553: otg.ActionResponseProtocolIpv4 + (*ActionProtocolIpv4Ping)(nil), // 554: otg.ActionProtocolIpv4Ping + (*ActionProtocolIpv4PingRequest)(nil), // 555: otg.ActionProtocolIpv4PingRequest + (*ActionResponseProtocolIpv4Ping)(nil), // 556: otg.ActionResponseProtocolIpv4Ping + (*ActionResponseProtocolIpv4PingResponse)(nil), // 557: otg.ActionResponseProtocolIpv4PingResponse + (*ActionProtocolIpv6)(nil), // 558: otg.ActionProtocolIpv6 + (*ActionResponseProtocolIpv6)(nil), // 559: otg.ActionResponseProtocolIpv6 + (*ActionProtocolIpv6Ping)(nil), // 560: otg.ActionProtocolIpv6Ping + (*ActionProtocolIpv6PingRequest)(nil), // 561: otg.ActionProtocolIpv6PingRequest + (*ActionResponseProtocolIpv6Ping)(nil), // 562: otg.ActionResponseProtocolIpv6Ping + (*ActionResponseProtocolIpv6PingResponse)(nil), // 563: otg.ActionResponseProtocolIpv6PingResponse + (*ActionProtocolBgp)(nil), // 564: otg.ActionProtocolBgp + (*ActionProtocolBgpNotification)(nil), // 565: otg.ActionProtocolBgpNotification + (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 566: otg.ActionProtocolBgpInitiateGracefulRestart + (*MetricsRequest)(nil), // 567: otg.MetricsRequest + (*MetricsResponse)(nil), // 568: otg.MetricsResponse + (*PortMetricsRequest)(nil), // 569: otg.PortMetricsRequest + (*PortMetric)(nil), // 570: otg.PortMetric + (*FlowMetricsRequest)(nil), // 571: otg.FlowMetricsRequest + (*FlowTaggedMetricsFilter)(nil), // 572: otg.FlowTaggedMetricsFilter + (*FlowMetricTagFilter)(nil), // 573: otg.FlowMetricTagFilter + (*FlowMetric)(nil), // 574: otg.FlowMetric + (*FlowTaggedMetric)(nil), // 575: otg.FlowTaggedMetric + (*FlowMetricTag)(nil), // 576: otg.FlowMetricTag + (*FlowMetricTagValue)(nil), // 577: otg.FlowMetricTagValue + (*MetricTimestamp)(nil), // 578: otg.MetricTimestamp + (*MetricLatency)(nil), // 579: otg.MetricLatency + (*Bgpv4MetricsRequest)(nil), // 580: otg.Bgpv4MetricsRequest + (*Bgpv4Metric)(nil), // 581: otg.Bgpv4Metric + (*Bgpv6MetricsRequest)(nil), // 582: otg.Bgpv6MetricsRequest + (*Bgpv6Metric)(nil), // 583: otg.Bgpv6Metric + (*IsisMetricsRequest)(nil), // 584: otg.IsisMetricsRequest + (*IsisMetric)(nil), // 585: otg.IsisMetric + (*LagMetricsRequest)(nil), // 586: otg.LagMetricsRequest + (*LagMetric)(nil), // 587: otg.LagMetric + (*LacpMetricsRequest)(nil), // 588: otg.LacpMetricsRequest + (*LacpMetric)(nil), // 589: otg.LacpMetric + (*LldpMetricsRequest)(nil), // 590: otg.LldpMetricsRequest + (*LldpMetric)(nil), // 591: otg.LldpMetric + (*RsvpMetricsRequest)(nil), // 592: otg.RsvpMetricsRequest + (*RsvpMetric)(nil), // 593: otg.RsvpMetric + (*StatesRequest)(nil), // 594: otg.StatesRequest + (*StatesResponse)(nil), // 595: otg.StatesResponse + (*Neighborsv4StatesRequest)(nil), // 596: otg.Neighborsv4StatesRequest + (*Neighborsv4State)(nil), // 597: otg.Neighborsv4State + (*Neighborsv6StatesRequest)(nil), // 598: otg.Neighborsv6StatesRequest + (*Neighborsv6State)(nil), // 599: otg.Neighborsv6State + (*BgpPrefixStateRequest)(nil), // 600: otg.BgpPrefixStateRequest + (*BgpPrefixIpv4UnicastFilter)(nil), // 601: otg.BgpPrefixIpv4UnicastFilter + (*BgpPrefixIpv6UnicastFilter)(nil), // 602: otg.BgpPrefixIpv6UnicastFilter + (*BgpPrefixesState)(nil), // 603: otg.BgpPrefixesState + (*BgpPrefixIpv4UnicastState)(nil), // 604: otg.BgpPrefixIpv4UnicastState + (*BgpPrefixIpv6UnicastState)(nil), // 605: otg.BgpPrefixIpv6UnicastState + (*ResultBgpCommunity)(nil), // 606: otg.ResultBgpCommunity + (*ResultBgpAsPath)(nil), // 607: otg.ResultBgpAsPath + (*ResultBgpAsPathSegment)(nil), // 608: otg.ResultBgpAsPathSegment + (*IsisLspsStateRequest)(nil), // 609: otg.IsisLspsStateRequest + (*IsisLspsState)(nil), // 610: otg.IsisLspsState + (*IsisLspState)(nil), // 611: otg.IsisLspState + (*IsisLspTlvs)(nil), // 612: otg.IsisLspTlvs + (*IsisLspHostname)(nil), // 613: otg.IsisLspHostname + (*IsisLspFlags)(nil), // 614: otg.IsisLspFlags + (*IsisLspIsReachabilityTlv)(nil), // 615: otg.IsisLspIsReachabilityTlv + (*IsisLspExtendedIsReachabilityTlv)(nil), // 616: otg.IsisLspExtendedIsReachabilityTlv + (*IsisLspneighbor)(nil), // 617: otg.IsisLspneighbor + (*IsisLspIpv4InternalReachabilityTlv)(nil), // 618: otg.IsisLspIpv4InternalReachabilityTlv + (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 619: otg.IsisLspIpv4ExternalReachabilityTlv + (*IsisLspV4Prefix)(nil), // 620: otg.IsisLspV4Prefix + (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 621: otg.IsisLspExtendedIpv4ReachabilityTlv + (*IsisLspExtendedV4Prefix)(nil), // 622: otg.IsisLspExtendedV4Prefix + (*IsisLspIpv6ReachabilityTlv)(nil), // 623: otg.IsisLspIpv6ReachabilityTlv + (*IsisLspV6Prefix)(nil), // 624: otg.IsisLspV6Prefix + (*IsisLspPrefixAttributes)(nil), // 625: otg.IsisLspPrefixAttributes + (*LldpNeighborsStateRequest)(nil), // 626: otg.LldpNeighborsStateRequest + (*LldpNeighborsState)(nil), // 627: otg.LldpNeighborsState + (*LldpCustomTLVState)(nil), // 628: otg.LldpCustomTLVState + (*LldpCapabilityState)(nil), // 629: otg.LldpCapabilityState + (*RsvpLspsStateRequest)(nil), // 630: otg.RsvpLspsStateRequest + (*RsvpLspsState)(nil), // 631: otg.RsvpLspsState + (*RsvpIPv4LspState)(nil), // 632: otg.RsvpIPv4LspState + (*RsvpLspState)(nil), // 633: otg.RsvpLspState + (*RsvpLspIpv4Rro)(nil), // 634: otg.RsvpLspIpv4Rro + (*RsvpLspIpv4Ero)(nil), // 635: otg.RsvpLspIpv4Ero + (*CaptureRequest)(nil), // 636: otg.CaptureRequest + (*PatternFlowEthernetDstCounter)(nil), // 637: otg.PatternFlowEthernetDstCounter + (*PatternFlowEthernetDstMetricTag)(nil), // 638: otg.PatternFlowEthernetDstMetricTag + (*PatternFlowEthernetDst)(nil), // 639: otg.PatternFlowEthernetDst + (*PatternFlowEthernetSrcCounter)(nil), // 640: otg.PatternFlowEthernetSrcCounter + (*PatternFlowEthernetSrcMetricTag)(nil), // 641: otg.PatternFlowEthernetSrcMetricTag + (*PatternFlowEthernetSrc)(nil), // 642: otg.PatternFlowEthernetSrc + (*PatternFlowEthernetEtherTypeCounter)(nil), // 643: otg.PatternFlowEthernetEtherTypeCounter + (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 644: otg.PatternFlowEthernetEtherTypeMetricTag + (*PatternFlowEthernetEtherType)(nil), // 645: otg.PatternFlowEthernetEtherType + (*PatternFlowEthernetPfcQueueCounter)(nil), // 646: otg.PatternFlowEthernetPfcQueueCounter + (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 647: otg.PatternFlowEthernetPfcQueueMetricTag + (*PatternFlowEthernetPfcQueue)(nil), // 648: otg.PatternFlowEthernetPfcQueue + (*PatternFlowVlanPriorityCounter)(nil), // 649: otg.PatternFlowVlanPriorityCounter + (*PatternFlowVlanPriorityMetricTag)(nil), // 650: otg.PatternFlowVlanPriorityMetricTag + (*PatternFlowVlanPriority)(nil), // 651: otg.PatternFlowVlanPriority + (*PatternFlowVlanCfiCounter)(nil), // 652: otg.PatternFlowVlanCfiCounter + (*PatternFlowVlanCfiMetricTag)(nil), // 653: otg.PatternFlowVlanCfiMetricTag + (*PatternFlowVlanCfi)(nil), // 654: otg.PatternFlowVlanCfi + (*PatternFlowVlanIdCounter)(nil), // 655: otg.PatternFlowVlanIdCounter + (*PatternFlowVlanIdMetricTag)(nil), // 656: otg.PatternFlowVlanIdMetricTag + (*PatternFlowVlanId)(nil), // 657: otg.PatternFlowVlanId + (*PatternFlowVlanTpidCounter)(nil), // 658: otg.PatternFlowVlanTpidCounter + (*PatternFlowVlanTpidMetricTag)(nil), // 659: otg.PatternFlowVlanTpidMetricTag + (*PatternFlowVlanTpid)(nil), // 660: otg.PatternFlowVlanTpid + (*PatternFlowVxlanFlagsCounter)(nil), // 661: otg.PatternFlowVxlanFlagsCounter + (*PatternFlowVxlanFlagsMetricTag)(nil), // 662: otg.PatternFlowVxlanFlagsMetricTag + (*PatternFlowVxlanFlags)(nil), // 663: otg.PatternFlowVxlanFlags + (*PatternFlowVxlanReserved0Counter)(nil), // 664: otg.PatternFlowVxlanReserved0Counter + (*PatternFlowVxlanReserved0MetricTag)(nil), // 665: otg.PatternFlowVxlanReserved0MetricTag + (*PatternFlowVxlanReserved0)(nil), // 666: otg.PatternFlowVxlanReserved0 + (*PatternFlowVxlanVniCounter)(nil), // 667: otg.PatternFlowVxlanVniCounter + (*PatternFlowVxlanVniMetricTag)(nil), // 668: otg.PatternFlowVxlanVniMetricTag + (*PatternFlowVxlanVni)(nil), // 669: otg.PatternFlowVxlanVni + (*PatternFlowVxlanReserved1Counter)(nil), // 670: otg.PatternFlowVxlanReserved1Counter + (*PatternFlowVxlanReserved1MetricTag)(nil), // 671: otg.PatternFlowVxlanReserved1MetricTag + (*PatternFlowVxlanReserved1)(nil), // 672: otg.PatternFlowVxlanReserved1 + (*PatternFlowIpv4VersionCounter)(nil), // 673: otg.PatternFlowIpv4VersionCounter + (*PatternFlowIpv4VersionMetricTag)(nil), // 674: otg.PatternFlowIpv4VersionMetricTag + (*PatternFlowIpv4Version)(nil), // 675: otg.PatternFlowIpv4Version + (*PatternFlowIpv4HeaderLengthCounter)(nil), // 676: otg.PatternFlowIpv4HeaderLengthCounter + (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 677: otg.PatternFlowIpv4HeaderLengthMetricTag + (*PatternFlowIpv4HeaderLength)(nil), // 678: otg.PatternFlowIpv4HeaderLength + (*PatternFlowIpv4TotalLengthCounter)(nil), // 679: otg.PatternFlowIpv4TotalLengthCounter + (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 680: otg.PatternFlowIpv4TotalLengthMetricTag + (*PatternFlowIpv4TotalLength)(nil), // 681: otg.PatternFlowIpv4TotalLength + (*PatternFlowIpv4IdentificationCounter)(nil), // 682: otg.PatternFlowIpv4IdentificationCounter + (*PatternFlowIpv4IdentificationMetricTag)(nil), // 683: otg.PatternFlowIpv4IdentificationMetricTag + (*PatternFlowIpv4Identification)(nil), // 684: otg.PatternFlowIpv4Identification + (*PatternFlowIpv4ReservedCounter)(nil), // 685: otg.PatternFlowIpv4ReservedCounter + (*PatternFlowIpv4ReservedMetricTag)(nil), // 686: otg.PatternFlowIpv4ReservedMetricTag + (*PatternFlowIpv4Reserved)(nil), // 687: otg.PatternFlowIpv4Reserved + (*PatternFlowIpv4DontFragmentCounter)(nil), // 688: otg.PatternFlowIpv4DontFragmentCounter + (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 689: otg.PatternFlowIpv4DontFragmentMetricTag + (*PatternFlowIpv4DontFragment)(nil), // 690: otg.PatternFlowIpv4DontFragment + (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 691: otg.PatternFlowIpv4MoreFragmentsCounter + (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 692: otg.PatternFlowIpv4MoreFragmentsMetricTag + (*PatternFlowIpv4MoreFragments)(nil), // 693: otg.PatternFlowIpv4MoreFragments + (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 694: otg.PatternFlowIpv4FragmentOffsetCounter + (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 695: otg.PatternFlowIpv4FragmentOffsetMetricTag + (*PatternFlowIpv4FragmentOffset)(nil), // 696: otg.PatternFlowIpv4FragmentOffset + (*PatternFlowIpv4TimeToLiveCounter)(nil), // 697: otg.PatternFlowIpv4TimeToLiveCounter + (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 698: otg.PatternFlowIpv4TimeToLiveMetricTag + (*PatternFlowIpv4TimeToLive)(nil), // 699: otg.PatternFlowIpv4TimeToLive + (*PatternFlowIpv4ProtocolCounter)(nil), // 700: otg.PatternFlowIpv4ProtocolCounter + (*PatternFlowIpv4ProtocolMetricTag)(nil), // 701: otg.PatternFlowIpv4ProtocolMetricTag + (*PatternFlowIpv4Protocol)(nil), // 702: otg.PatternFlowIpv4Protocol + (*PatternFlowIpv4HeaderChecksum)(nil), // 703: otg.PatternFlowIpv4HeaderChecksum + (*PatternFlowIpv4SrcCounter)(nil), // 704: otg.PatternFlowIpv4SrcCounter + (*PatternFlowIpv4SrcMetricTag)(nil), // 705: otg.PatternFlowIpv4SrcMetricTag + (*PatternFlowIpv4Src)(nil), // 706: otg.PatternFlowIpv4Src + (*PatternFlowIpv4DstCounter)(nil), // 707: otg.PatternFlowIpv4DstCounter + (*PatternFlowIpv4DstMetricTag)(nil), // 708: otg.PatternFlowIpv4DstMetricTag + (*PatternFlowIpv4Dst)(nil), // 709: otg.PatternFlowIpv4Dst + (*PatternFlowIpv4PriorityRawCounter)(nil), // 710: otg.PatternFlowIpv4PriorityRawCounter + (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 711: otg.PatternFlowIpv4PriorityRawMetricTag + (*PatternFlowIpv4PriorityRaw)(nil), // 712: otg.PatternFlowIpv4PriorityRaw + (*PatternFlowIpv4DscpPhbCounter)(nil), // 713: otg.PatternFlowIpv4DscpPhbCounter + (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 714: otg.PatternFlowIpv4DscpPhbMetricTag + (*PatternFlowIpv4DscpPhb)(nil), // 715: otg.PatternFlowIpv4DscpPhb + (*PatternFlowIpv4DscpEcnCounter)(nil), // 716: otg.PatternFlowIpv4DscpEcnCounter + (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 717: otg.PatternFlowIpv4DscpEcnMetricTag + (*PatternFlowIpv4DscpEcn)(nil), // 718: otg.PatternFlowIpv4DscpEcn + (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 719: otg.PatternFlowIpv4TosPrecedenceCounter + (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 720: otg.PatternFlowIpv4TosPrecedenceMetricTag + (*PatternFlowIpv4TosPrecedence)(nil), // 721: otg.PatternFlowIpv4TosPrecedence + (*PatternFlowIpv4TosDelayCounter)(nil), // 722: otg.PatternFlowIpv4TosDelayCounter + (*PatternFlowIpv4TosDelayMetricTag)(nil), // 723: otg.PatternFlowIpv4TosDelayMetricTag + (*PatternFlowIpv4TosDelay)(nil), // 724: otg.PatternFlowIpv4TosDelay + (*PatternFlowIpv4TosThroughputCounter)(nil), // 725: otg.PatternFlowIpv4TosThroughputCounter + (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 726: otg.PatternFlowIpv4TosThroughputMetricTag + (*PatternFlowIpv4TosThroughput)(nil), // 727: otg.PatternFlowIpv4TosThroughput + (*PatternFlowIpv4TosReliabilityCounter)(nil), // 728: otg.PatternFlowIpv4TosReliabilityCounter + (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 729: otg.PatternFlowIpv4TosReliabilityMetricTag + (*PatternFlowIpv4TosReliability)(nil), // 730: otg.PatternFlowIpv4TosReliability + (*PatternFlowIpv4TosMonetaryCounter)(nil), // 731: otg.PatternFlowIpv4TosMonetaryCounter + (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 732: otg.PatternFlowIpv4TosMonetaryMetricTag + (*PatternFlowIpv4TosMonetary)(nil), // 733: otg.PatternFlowIpv4TosMonetary + (*PatternFlowIpv4TosUnusedCounter)(nil), // 734: otg.PatternFlowIpv4TosUnusedCounter + (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 735: otg.PatternFlowIpv4TosUnusedMetricTag + (*PatternFlowIpv4TosUnused)(nil), // 736: otg.PatternFlowIpv4TosUnused + (*PatternFlowIpv6VersionCounter)(nil), // 737: otg.PatternFlowIpv6VersionCounter + (*PatternFlowIpv6VersionMetricTag)(nil), // 738: otg.PatternFlowIpv6VersionMetricTag + (*PatternFlowIpv6Version)(nil), // 739: otg.PatternFlowIpv6Version + (*PatternFlowIpv6TrafficClassCounter)(nil), // 740: otg.PatternFlowIpv6TrafficClassCounter + (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 741: otg.PatternFlowIpv6TrafficClassMetricTag + (*PatternFlowIpv6TrafficClass)(nil), // 742: otg.PatternFlowIpv6TrafficClass + (*PatternFlowIpv6FlowLabelCounter)(nil), // 743: otg.PatternFlowIpv6FlowLabelCounter + (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 744: otg.PatternFlowIpv6FlowLabelMetricTag + (*PatternFlowIpv6FlowLabel)(nil), // 745: otg.PatternFlowIpv6FlowLabel + (*PatternFlowIpv6PayloadLengthCounter)(nil), // 746: otg.PatternFlowIpv6PayloadLengthCounter + (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 747: otg.PatternFlowIpv6PayloadLengthMetricTag + (*PatternFlowIpv6PayloadLength)(nil), // 748: otg.PatternFlowIpv6PayloadLength + (*PatternFlowIpv6NextHeaderCounter)(nil), // 749: otg.PatternFlowIpv6NextHeaderCounter + (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 750: otg.PatternFlowIpv6NextHeaderMetricTag + (*PatternFlowIpv6NextHeader)(nil), // 751: otg.PatternFlowIpv6NextHeader + (*PatternFlowIpv6HopLimitCounter)(nil), // 752: otg.PatternFlowIpv6HopLimitCounter + (*PatternFlowIpv6HopLimitMetricTag)(nil), // 753: otg.PatternFlowIpv6HopLimitMetricTag + (*PatternFlowIpv6HopLimit)(nil), // 754: otg.PatternFlowIpv6HopLimit + (*PatternFlowIpv6SrcCounter)(nil), // 755: otg.PatternFlowIpv6SrcCounter + (*PatternFlowIpv6SrcMetricTag)(nil), // 756: otg.PatternFlowIpv6SrcMetricTag + (*PatternFlowIpv6Src)(nil), // 757: otg.PatternFlowIpv6Src + (*PatternFlowIpv6DstCounter)(nil), // 758: otg.PatternFlowIpv6DstCounter + (*PatternFlowIpv6DstMetricTag)(nil), // 759: otg.PatternFlowIpv6DstMetricTag + (*PatternFlowIpv6Dst)(nil), // 760: otg.PatternFlowIpv6Dst + (*PatternFlowPfcPauseDstCounter)(nil), // 761: otg.PatternFlowPfcPauseDstCounter + (*PatternFlowPfcPauseDstMetricTag)(nil), // 762: otg.PatternFlowPfcPauseDstMetricTag + (*PatternFlowPfcPauseDst)(nil), // 763: otg.PatternFlowPfcPauseDst + (*PatternFlowPfcPauseSrcCounter)(nil), // 764: otg.PatternFlowPfcPauseSrcCounter + (*PatternFlowPfcPauseSrcMetricTag)(nil), // 765: otg.PatternFlowPfcPauseSrcMetricTag + (*PatternFlowPfcPauseSrc)(nil), // 766: otg.PatternFlowPfcPauseSrc + (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 767: otg.PatternFlowPfcPauseEtherTypeCounter + (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 768: otg.PatternFlowPfcPauseEtherTypeMetricTag + (*PatternFlowPfcPauseEtherType)(nil), // 769: otg.PatternFlowPfcPauseEtherType + (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 770: otg.PatternFlowPfcPauseControlOpCodeCounter + (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 771: otg.PatternFlowPfcPauseControlOpCodeMetricTag + (*PatternFlowPfcPauseControlOpCode)(nil), // 772: otg.PatternFlowPfcPauseControlOpCode + (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 773: otg.PatternFlowPfcPauseClassEnableVectorCounter + (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 774: otg.PatternFlowPfcPauseClassEnableVectorMetricTag + (*PatternFlowPfcPauseClassEnableVector)(nil), // 775: otg.PatternFlowPfcPauseClassEnableVector + (*PatternFlowPfcPausePauseClass0Counter)(nil), // 776: otg.PatternFlowPfcPausePauseClass0Counter + (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 777: otg.PatternFlowPfcPausePauseClass0MetricTag + (*PatternFlowPfcPausePauseClass0)(nil), // 778: otg.PatternFlowPfcPausePauseClass0 + (*PatternFlowPfcPausePauseClass1Counter)(nil), // 779: otg.PatternFlowPfcPausePauseClass1Counter + (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 780: otg.PatternFlowPfcPausePauseClass1MetricTag + (*PatternFlowPfcPausePauseClass1)(nil), // 781: otg.PatternFlowPfcPausePauseClass1 + (*PatternFlowPfcPausePauseClass2Counter)(nil), // 782: otg.PatternFlowPfcPausePauseClass2Counter + (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 783: otg.PatternFlowPfcPausePauseClass2MetricTag + (*PatternFlowPfcPausePauseClass2)(nil), // 784: otg.PatternFlowPfcPausePauseClass2 + (*PatternFlowPfcPausePauseClass3Counter)(nil), // 785: otg.PatternFlowPfcPausePauseClass3Counter + (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 786: otg.PatternFlowPfcPausePauseClass3MetricTag + (*PatternFlowPfcPausePauseClass3)(nil), // 787: otg.PatternFlowPfcPausePauseClass3 + (*PatternFlowPfcPausePauseClass4Counter)(nil), // 788: otg.PatternFlowPfcPausePauseClass4Counter + (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 789: otg.PatternFlowPfcPausePauseClass4MetricTag + (*PatternFlowPfcPausePauseClass4)(nil), // 790: otg.PatternFlowPfcPausePauseClass4 + (*PatternFlowPfcPausePauseClass5Counter)(nil), // 791: otg.PatternFlowPfcPausePauseClass5Counter + (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 792: otg.PatternFlowPfcPausePauseClass5MetricTag + (*PatternFlowPfcPausePauseClass5)(nil), // 793: otg.PatternFlowPfcPausePauseClass5 + (*PatternFlowPfcPausePauseClass6Counter)(nil), // 794: otg.PatternFlowPfcPausePauseClass6Counter + (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 795: otg.PatternFlowPfcPausePauseClass6MetricTag + (*PatternFlowPfcPausePauseClass6)(nil), // 796: otg.PatternFlowPfcPausePauseClass6 + (*PatternFlowPfcPausePauseClass7Counter)(nil), // 797: otg.PatternFlowPfcPausePauseClass7Counter + (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 798: otg.PatternFlowPfcPausePauseClass7MetricTag + (*PatternFlowPfcPausePauseClass7)(nil), // 799: otg.PatternFlowPfcPausePauseClass7 + (*PatternFlowEthernetPauseDstCounter)(nil), // 800: otg.PatternFlowEthernetPauseDstCounter + (*PatternFlowEthernetPauseDstMetricTag)(nil), // 801: otg.PatternFlowEthernetPauseDstMetricTag + (*PatternFlowEthernetPauseDst)(nil), // 802: otg.PatternFlowEthernetPauseDst + (*PatternFlowEthernetPauseSrcCounter)(nil), // 803: otg.PatternFlowEthernetPauseSrcCounter + (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 804: otg.PatternFlowEthernetPauseSrcMetricTag + (*PatternFlowEthernetPauseSrc)(nil), // 805: otg.PatternFlowEthernetPauseSrc + (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 806: otg.PatternFlowEthernetPauseEtherTypeCounter + (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 807: otg.PatternFlowEthernetPauseEtherTypeMetricTag + (*PatternFlowEthernetPauseEtherType)(nil), // 808: otg.PatternFlowEthernetPauseEtherType + (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 809: otg.PatternFlowEthernetPauseControlOpCodeCounter + (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 810: otg.PatternFlowEthernetPauseControlOpCodeMetricTag + (*PatternFlowEthernetPauseControlOpCode)(nil), // 811: otg.PatternFlowEthernetPauseControlOpCode + (*PatternFlowEthernetPauseTimeCounter)(nil), // 812: otg.PatternFlowEthernetPauseTimeCounter + (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 813: otg.PatternFlowEthernetPauseTimeMetricTag + (*PatternFlowEthernetPauseTime)(nil), // 814: otg.PatternFlowEthernetPauseTime + (*PatternFlowTcpSrcPortCounter)(nil), // 815: otg.PatternFlowTcpSrcPortCounter + (*PatternFlowTcpSrcPortMetricTag)(nil), // 816: otg.PatternFlowTcpSrcPortMetricTag + (*PatternFlowTcpSrcPort)(nil), // 817: otg.PatternFlowTcpSrcPort + (*PatternFlowTcpDstPortCounter)(nil), // 818: otg.PatternFlowTcpDstPortCounter + (*PatternFlowTcpDstPortMetricTag)(nil), // 819: otg.PatternFlowTcpDstPortMetricTag + (*PatternFlowTcpDstPort)(nil), // 820: otg.PatternFlowTcpDstPort + (*PatternFlowTcpSeqNumCounter)(nil), // 821: otg.PatternFlowTcpSeqNumCounter + (*PatternFlowTcpSeqNumMetricTag)(nil), // 822: otg.PatternFlowTcpSeqNumMetricTag + (*PatternFlowTcpSeqNum)(nil), // 823: otg.PatternFlowTcpSeqNum + (*PatternFlowTcpAckNumCounter)(nil), // 824: otg.PatternFlowTcpAckNumCounter + (*PatternFlowTcpAckNumMetricTag)(nil), // 825: otg.PatternFlowTcpAckNumMetricTag + (*PatternFlowTcpAckNum)(nil), // 826: otg.PatternFlowTcpAckNum + (*PatternFlowTcpDataOffsetCounter)(nil), // 827: otg.PatternFlowTcpDataOffsetCounter + (*PatternFlowTcpDataOffsetMetricTag)(nil), // 828: otg.PatternFlowTcpDataOffsetMetricTag + (*PatternFlowTcpDataOffset)(nil), // 829: otg.PatternFlowTcpDataOffset + (*PatternFlowTcpEcnNsCounter)(nil), // 830: otg.PatternFlowTcpEcnNsCounter + (*PatternFlowTcpEcnNsMetricTag)(nil), // 831: otg.PatternFlowTcpEcnNsMetricTag + (*PatternFlowTcpEcnNs)(nil), // 832: otg.PatternFlowTcpEcnNs + (*PatternFlowTcpEcnCwrCounter)(nil), // 833: otg.PatternFlowTcpEcnCwrCounter + (*PatternFlowTcpEcnCwrMetricTag)(nil), // 834: otg.PatternFlowTcpEcnCwrMetricTag + (*PatternFlowTcpEcnCwr)(nil), // 835: otg.PatternFlowTcpEcnCwr + (*PatternFlowTcpEcnEchoCounter)(nil), // 836: otg.PatternFlowTcpEcnEchoCounter + (*PatternFlowTcpEcnEchoMetricTag)(nil), // 837: otg.PatternFlowTcpEcnEchoMetricTag + (*PatternFlowTcpEcnEcho)(nil), // 838: otg.PatternFlowTcpEcnEcho + (*PatternFlowTcpCtlUrgCounter)(nil), // 839: otg.PatternFlowTcpCtlUrgCounter + (*PatternFlowTcpCtlUrgMetricTag)(nil), // 840: otg.PatternFlowTcpCtlUrgMetricTag + (*PatternFlowTcpCtlUrg)(nil), // 841: otg.PatternFlowTcpCtlUrg + (*PatternFlowTcpCtlAckCounter)(nil), // 842: otg.PatternFlowTcpCtlAckCounter + (*PatternFlowTcpCtlAckMetricTag)(nil), // 843: otg.PatternFlowTcpCtlAckMetricTag + (*PatternFlowTcpCtlAck)(nil), // 844: otg.PatternFlowTcpCtlAck + (*PatternFlowTcpCtlPshCounter)(nil), // 845: otg.PatternFlowTcpCtlPshCounter + (*PatternFlowTcpCtlPshMetricTag)(nil), // 846: otg.PatternFlowTcpCtlPshMetricTag + (*PatternFlowTcpCtlPsh)(nil), // 847: otg.PatternFlowTcpCtlPsh + (*PatternFlowTcpCtlRstCounter)(nil), // 848: otg.PatternFlowTcpCtlRstCounter + (*PatternFlowTcpCtlRstMetricTag)(nil), // 849: otg.PatternFlowTcpCtlRstMetricTag + (*PatternFlowTcpCtlRst)(nil), // 850: otg.PatternFlowTcpCtlRst + (*PatternFlowTcpCtlSynCounter)(nil), // 851: otg.PatternFlowTcpCtlSynCounter + (*PatternFlowTcpCtlSynMetricTag)(nil), // 852: otg.PatternFlowTcpCtlSynMetricTag + (*PatternFlowTcpCtlSyn)(nil), // 853: otg.PatternFlowTcpCtlSyn + (*PatternFlowTcpCtlFinCounter)(nil), // 854: otg.PatternFlowTcpCtlFinCounter + (*PatternFlowTcpCtlFinMetricTag)(nil), // 855: otg.PatternFlowTcpCtlFinMetricTag + (*PatternFlowTcpCtlFin)(nil), // 856: otg.PatternFlowTcpCtlFin + (*PatternFlowTcpWindowCounter)(nil), // 857: otg.PatternFlowTcpWindowCounter + (*PatternFlowTcpWindowMetricTag)(nil), // 858: otg.PatternFlowTcpWindowMetricTag + (*PatternFlowTcpWindow)(nil), // 859: otg.PatternFlowTcpWindow + (*PatternFlowUdpSrcPortCounter)(nil), // 860: otg.PatternFlowUdpSrcPortCounter + (*PatternFlowUdpSrcPortMetricTag)(nil), // 861: otg.PatternFlowUdpSrcPortMetricTag + (*PatternFlowUdpSrcPort)(nil), // 862: otg.PatternFlowUdpSrcPort + (*PatternFlowUdpDstPortCounter)(nil), // 863: otg.PatternFlowUdpDstPortCounter + (*PatternFlowUdpDstPortMetricTag)(nil), // 864: otg.PatternFlowUdpDstPortMetricTag + (*PatternFlowUdpDstPort)(nil), // 865: otg.PatternFlowUdpDstPort + (*PatternFlowUdpLengthCounter)(nil), // 866: otg.PatternFlowUdpLengthCounter + (*PatternFlowUdpLengthMetricTag)(nil), // 867: otg.PatternFlowUdpLengthMetricTag + (*PatternFlowUdpLength)(nil), // 868: otg.PatternFlowUdpLength + (*PatternFlowUdpChecksum)(nil), // 869: otg.PatternFlowUdpChecksum + (*PatternFlowGreChecksumPresentCounter)(nil), // 870: otg.PatternFlowGreChecksumPresentCounter + (*PatternFlowGreChecksumPresentMetricTag)(nil), // 871: otg.PatternFlowGreChecksumPresentMetricTag + (*PatternFlowGreChecksumPresent)(nil), // 872: otg.PatternFlowGreChecksumPresent + (*PatternFlowGreReserved0Counter)(nil), // 873: otg.PatternFlowGreReserved0Counter + (*PatternFlowGreReserved0MetricTag)(nil), // 874: otg.PatternFlowGreReserved0MetricTag + (*PatternFlowGreReserved0)(nil), // 875: otg.PatternFlowGreReserved0 + (*PatternFlowGreVersionCounter)(nil), // 876: otg.PatternFlowGreVersionCounter + (*PatternFlowGreVersionMetricTag)(nil), // 877: otg.PatternFlowGreVersionMetricTag + (*PatternFlowGreVersion)(nil), // 878: otg.PatternFlowGreVersion + (*PatternFlowGreProtocolCounter)(nil), // 879: otg.PatternFlowGreProtocolCounter + (*PatternFlowGreProtocolMetricTag)(nil), // 880: otg.PatternFlowGreProtocolMetricTag + (*PatternFlowGreProtocol)(nil), // 881: otg.PatternFlowGreProtocol + (*PatternFlowGreChecksum)(nil), // 882: otg.PatternFlowGreChecksum + (*PatternFlowGreReserved1Counter)(nil), // 883: otg.PatternFlowGreReserved1Counter + (*PatternFlowGreReserved1MetricTag)(nil), // 884: otg.PatternFlowGreReserved1MetricTag + (*PatternFlowGreReserved1)(nil), // 885: otg.PatternFlowGreReserved1 + (*PatternFlowGtpv1VersionCounter)(nil), // 886: otg.PatternFlowGtpv1VersionCounter + (*PatternFlowGtpv1VersionMetricTag)(nil), // 887: otg.PatternFlowGtpv1VersionMetricTag + (*PatternFlowGtpv1Version)(nil), // 888: otg.PatternFlowGtpv1Version + (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 889: otg.PatternFlowGtpv1ProtocolTypeCounter + (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 890: otg.PatternFlowGtpv1ProtocolTypeMetricTag + (*PatternFlowGtpv1ProtocolType)(nil), // 891: otg.PatternFlowGtpv1ProtocolType + (*PatternFlowGtpv1ReservedCounter)(nil), // 892: otg.PatternFlowGtpv1ReservedCounter + (*PatternFlowGtpv1ReservedMetricTag)(nil), // 893: otg.PatternFlowGtpv1ReservedMetricTag + (*PatternFlowGtpv1Reserved)(nil), // 894: otg.PatternFlowGtpv1Reserved + (*PatternFlowGtpv1EFlagCounter)(nil), // 895: otg.PatternFlowGtpv1EFlagCounter + (*PatternFlowGtpv1EFlagMetricTag)(nil), // 896: otg.PatternFlowGtpv1EFlagMetricTag + (*PatternFlowGtpv1EFlag)(nil), // 897: otg.PatternFlowGtpv1EFlag + (*PatternFlowGtpv1SFlagCounter)(nil), // 898: otg.PatternFlowGtpv1SFlagCounter + (*PatternFlowGtpv1SFlagMetricTag)(nil), // 899: otg.PatternFlowGtpv1SFlagMetricTag + (*PatternFlowGtpv1SFlag)(nil), // 900: otg.PatternFlowGtpv1SFlag + (*PatternFlowGtpv1PnFlagCounter)(nil), // 901: otg.PatternFlowGtpv1PnFlagCounter + (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 902: otg.PatternFlowGtpv1PnFlagMetricTag + (*PatternFlowGtpv1PnFlag)(nil), // 903: otg.PatternFlowGtpv1PnFlag + (*PatternFlowGtpv1MessageTypeCounter)(nil), // 904: otg.PatternFlowGtpv1MessageTypeCounter + (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 905: otg.PatternFlowGtpv1MessageTypeMetricTag + (*PatternFlowGtpv1MessageType)(nil), // 906: otg.PatternFlowGtpv1MessageType + (*PatternFlowGtpv1MessageLengthCounter)(nil), // 907: otg.PatternFlowGtpv1MessageLengthCounter + (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 908: otg.PatternFlowGtpv1MessageLengthMetricTag + (*PatternFlowGtpv1MessageLength)(nil), // 909: otg.PatternFlowGtpv1MessageLength + (*PatternFlowGtpv1TeidCounter)(nil), // 910: otg.PatternFlowGtpv1TeidCounter + (*PatternFlowGtpv1TeidMetricTag)(nil), // 911: otg.PatternFlowGtpv1TeidMetricTag + (*PatternFlowGtpv1Teid)(nil), // 912: otg.PatternFlowGtpv1Teid + (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 913: otg.PatternFlowGtpv1SquenceNumberCounter + (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 914: otg.PatternFlowGtpv1SquenceNumberMetricTag + (*PatternFlowGtpv1SquenceNumber)(nil), // 915: otg.PatternFlowGtpv1SquenceNumber + (*PatternFlowGtpv1NPduNumberCounter)(nil), // 916: otg.PatternFlowGtpv1NPduNumberCounter + (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 917: otg.PatternFlowGtpv1NPduNumberMetricTag + (*PatternFlowGtpv1NPduNumber)(nil), // 918: otg.PatternFlowGtpv1NPduNumber + (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 919: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 920: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 921: otg.PatternFlowGtpv1NextExtensionHeaderType + (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 922: otg.PatternFlowGtpExtensionExtensionLengthCounter + (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 923: otg.PatternFlowGtpExtensionExtensionLengthMetricTag + (*PatternFlowGtpExtensionExtensionLength)(nil), // 924: otg.PatternFlowGtpExtensionExtensionLength + (*PatternFlowGtpExtensionContentsCounter)(nil), // 925: otg.PatternFlowGtpExtensionContentsCounter + (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 926: otg.PatternFlowGtpExtensionContentsMetricTag + (*PatternFlowGtpExtensionContents)(nil), // 927: otg.PatternFlowGtpExtensionContents + (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 928: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 929: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 930: otg.PatternFlowGtpExtensionNextExtensionHeader + (*PatternFlowGtpv2VersionCounter)(nil), // 931: otg.PatternFlowGtpv2VersionCounter + (*PatternFlowGtpv2VersionMetricTag)(nil), // 932: otg.PatternFlowGtpv2VersionMetricTag + (*PatternFlowGtpv2Version)(nil), // 933: otg.PatternFlowGtpv2Version + (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 934: otg.PatternFlowGtpv2PiggybackingFlagCounter + (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 935: otg.PatternFlowGtpv2PiggybackingFlagMetricTag + (*PatternFlowGtpv2PiggybackingFlag)(nil), // 936: otg.PatternFlowGtpv2PiggybackingFlag + (*PatternFlowGtpv2TeidFlagCounter)(nil), // 937: otg.PatternFlowGtpv2TeidFlagCounter + (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 938: otg.PatternFlowGtpv2TeidFlagMetricTag + (*PatternFlowGtpv2TeidFlag)(nil), // 939: otg.PatternFlowGtpv2TeidFlag + (*PatternFlowGtpv2Spare1Counter)(nil), // 940: otg.PatternFlowGtpv2Spare1Counter + (*PatternFlowGtpv2Spare1MetricTag)(nil), // 941: otg.PatternFlowGtpv2Spare1MetricTag + (*PatternFlowGtpv2Spare1)(nil), // 942: otg.PatternFlowGtpv2Spare1 + (*PatternFlowGtpv2MessageTypeCounter)(nil), // 943: otg.PatternFlowGtpv2MessageTypeCounter + (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 944: otg.PatternFlowGtpv2MessageTypeMetricTag + (*PatternFlowGtpv2MessageType)(nil), // 945: otg.PatternFlowGtpv2MessageType + (*PatternFlowGtpv2MessageLengthCounter)(nil), // 946: otg.PatternFlowGtpv2MessageLengthCounter + (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 947: otg.PatternFlowGtpv2MessageLengthMetricTag + (*PatternFlowGtpv2MessageLength)(nil), // 948: otg.PatternFlowGtpv2MessageLength + (*PatternFlowGtpv2TeidCounter)(nil), // 949: otg.PatternFlowGtpv2TeidCounter + (*PatternFlowGtpv2TeidMetricTag)(nil), // 950: otg.PatternFlowGtpv2TeidMetricTag + (*PatternFlowGtpv2Teid)(nil), // 951: otg.PatternFlowGtpv2Teid + (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 952: otg.PatternFlowGtpv2SequenceNumberCounter + (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 953: otg.PatternFlowGtpv2SequenceNumberMetricTag + (*PatternFlowGtpv2SequenceNumber)(nil), // 954: otg.PatternFlowGtpv2SequenceNumber + (*PatternFlowGtpv2Spare2Counter)(nil), // 955: otg.PatternFlowGtpv2Spare2Counter + (*PatternFlowGtpv2Spare2MetricTag)(nil), // 956: otg.PatternFlowGtpv2Spare2MetricTag + (*PatternFlowGtpv2Spare2)(nil), // 957: otg.PatternFlowGtpv2Spare2 + (*PatternFlowArpHardwareTypeCounter)(nil), // 958: otg.PatternFlowArpHardwareTypeCounter + (*PatternFlowArpHardwareTypeMetricTag)(nil), // 959: otg.PatternFlowArpHardwareTypeMetricTag + (*PatternFlowArpHardwareType)(nil), // 960: otg.PatternFlowArpHardwareType + (*PatternFlowArpProtocolTypeCounter)(nil), // 961: otg.PatternFlowArpProtocolTypeCounter + (*PatternFlowArpProtocolTypeMetricTag)(nil), // 962: otg.PatternFlowArpProtocolTypeMetricTag + (*PatternFlowArpProtocolType)(nil), // 963: otg.PatternFlowArpProtocolType + (*PatternFlowArpHardwareLengthCounter)(nil), // 964: otg.PatternFlowArpHardwareLengthCounter + (*PatternFlowArpHardwareLengthMetricTag)(nil), // 965: otg.PatternFlowArpHardwareLengthMetricTag + (*PatternFlowArpHardwareLength)(nil), // 966: otg.PatternFlowArpHardwareLength + (*PatternFlowArpProtocolLengthCounter)(nil), // 967: otg.PatternFlowArpProtocolLengthCounter + (*PatternFlowArpProtocolLengthMetricTag)(nil), // 968: otg.PatternFlowArpProtocolLengthMetricTag + (*PatternFlowArpProtocolLength)(nil), // 969: otg.PatternFlowArpProtocolLength + (*PatternFlowArpOperationCounter)(nil), // 970: otg.PatternFlowArpOperationCounter + (*PatternFlowArpOperationMetricTag)(nil), // 971: otg.PatternFlowArpOperationMetricTag + (*PatternFlowArpOperation)(nil), // 972: otg.PatternFlowArpOperation + (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 973: otg.PatternFlowArpSenderHardwareAddrCounter + (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 974: otg.PatternFlowArpSenderHardwareAddrMetricTag + (*PatternFlowArpSenderHardwareAddr)(nil), // 975: otg.PatternFlowArpSenderHardwareAddr + (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 976: otg.PatternFlowArpSenderProtocolAddrCounter + (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 977: otg.PatternFlowArpSenderProtocolAddrMetricTag + (*PatternFlowArpSenderProtocolAddr)(nil), // 978: otg.PatternFlowArpSenderProtocolAddr + (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 979: otg.PatternFlowArpTargetHardwareAddrCounter + (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 980: otg.PatternFlowArpTargetHardwareAddrMetricTag + (*PatternFlowArpTargetHardwareAddr)(nil), // 981: otg.PatternFlowArpTargetHardwareAddr + (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 982: otg.PatternFlowArpTargetProtocolAddrCounter + (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 983: otg.PatternFlowArpTargetProtocolAddrMetricTag + (*PatternFlowArpTargetProtocolAddr)(nil), // 984: otg.PatternFlowArpTargetProtocolAddr + (*PatternFlowIcmpEchoTypeCounter)(nil), // 985: otg.PatternFlowIcmpEchoTypeCounter + (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 986: otg.PatternFlowIcmpEchoTypeMetricTag + (*PatternFlowIcmpEchoType)(nil), // 987: otg.PatternFlowIcmpEchoType + (*PatternFlowIcmpEchoCodeCounter)(nil), // 988: otg.PatternFlowIcmpEchoCodeCounter + (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 989: otg.PatternFlowIcmpEchoCodeMetricTag + (*PatternFlowIcmpEchoCode)(nil), // 990: otg.PatternFlowIcmpEchoCode + (*PatternFlowIcmpEchoChecksum)(nil), // 991: otg.PatternFlowIcmpEchoChecksum + (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 992: otg.PatternFlowIcmpEchoIdentifierCounter + (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 993: otg.PatternFlowIcmpEchoIdentifierMetricTag + (*PatternFlowIcmpEchoIdentifier)(nil), // 994: otg.PatternFlowIcmpEchoIdentifier + (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 995: otg.PatternFlowIcmpEchoSequenceNumberCounter + (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 996: otg.PatternFlowIcmpEchoSequenceNumberMetricTag + (*PatternFlowIcmpEchoSequenceNumber)(nil), // 997: otg.PatternFlowIcmpEchoSequenceNumber + (*PatternFlowIcmpCommonChecksum)(nil), // 998: otg.PatternFlowIcmpCommonChecksum + (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 999: otg.PatternFlowIcmpNextFieldsIdentifierCounter + (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1000: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1001: otg.PatternFlowIcmpNextFieldsIdentifier + (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1002: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1003: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1004: otg.PatternFlowIcmpNextFieldsSequenceNumber + (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1005: otg.PatternFlowIcmpv6EchoTypeCounter + (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1006: otg.PatternFlowIcmpv6EchoTypeMetricTag + (*PatternFlowIcmpv6EchoType)(nil), // 1007: otg.PatternFlowIcmpv6EchoType + (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1008: otg.PatternFlowIcmpv6EchoCodeCounter + (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1009: otg.PatternFlowIcmpv6EchoCodeMetricTag + (*PatternFlowIcmpv6EchoCode)(nil), // 1010: otg.PatternFlowIcmpv6EchoCode + (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1011: otg.PatternFlowIcmpv6EchoIdentifierCounter + (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1012: otg.PatternFlowIcmpv6EchoIdentifierMetricTag + (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1013: otg.PatternFlowIcmpv6EchoIdentifier + (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1014: otg.PatternFlowIcmpv6EchoSequenceNumberCounter + (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1015: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1016: otg.PatternFlowIcmpv6EchoSequenceNumber + (*PatternFlowIcmpv6EchoChecksum)(nil), // 1017: otg.PatternFlowIcmpv6EchoChecksum + (*PatternFlowIcmpv6CommonChecksum)(nil), // 1018: otg.PatternFlowIcmpv6CommonChecksum + (*PatternFlowPppAddressCounter)(nil), // 1019: otg.PatternFlowPppAddressCounter + (*PatternFlowPppAddressMetricTag)(nil), // 1020: otg.PatternFlowPppAddressMetricTag + (*PatternFlowPppAddress)(nil), // 1021: otg.PatternFlowPppAddress + (*PatternFlowPppControlCounter)(nil), // 1022: otg.PatternFlowPppControlCounter + (*PatternFlowPppControlMetricTag)(nil), // 1023: otg.PatternFlowPppControlMetricTag + (*PatternFlowPppControl)(nil), // 1024: otg.PatternFlowPppControl + (*PatternFlowPppProtocolTypeCounter)(nil), // 1025: otg.PatternFlowPppProtocolTypeCounter + (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1026: otg.PatternFlowPppProtocolTypeMetricTag + (*PatternFlowPppProtocolType)(nil), // 1027: otg.PatternFlowPppProtocolType + (*PatternFlowIgmpv1VersionCounter)(nil), // 1028: otg.PatternFlowIgmpv1VersionCounter + (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1029: otg.PatternFlowIgmpv1VersionMetricTag + (*PatternFlowIgmpv1Version)(nil), // 1030: otg.PatternFlowIgmpv1Version + (*PatternFlowIgmpv1TypeCounter)(nil), // 1031: otg.PatternFlowIgmpv1TypeCounter + (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1032: otg.PatternFlowIgmpv1TypeMetricTag + (*PatternFlowIgmpv1Type)(nil), // 1033: otg.PatternFlowIgmpv1Type + (*PatternFlowIgmpv1UnusedCounter)(nil), // 1034: otg.PatternFlowIgmpv1UnusedCounter + (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1035: otg.PatternFlowIgmpv1UnusedMetricTag + (*PatternFlowIgmpv1Unused)(nil), // 1036: otg.PatternFlowIgmpv1Unused + (*PatternFlowIgmpv1Checksum)(nil), // 1037: otg.PatternFlowIgmpv1Checksum + (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1038: otg.PatternFlowIgmpv1GroupAddressCounter + (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1039: otg.PatternFlowIgmpv1GroupAddressMetricTag + (*PatternFlowIgmpv1GroupAddress)(nil), // 1040: otg.PatternFlowIgmpv1GroupAddress + (*PatternFlowMplsLabelCounter)(nil), // 1041: otg.PatternFlowMplsLabelCounter + (*PatternFlowMplsLabelMetricTag)(nil), // 1042: otg.PatternFlowMplsLabelMetricTag + (*PatternFlowMplsLabel)(nil), // 1043: otg.PatternFlowMplsLabel + (*PatternFlowMplsTrafficClassCounter)(nil), // 1044: otg.PatternFlowMplsTrafficClassCounter + (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1045: otg.PatternFlowMplsTrafficClassMetricTag + (*PatternFlowMplsTrafficClass)(nil), // 1046: otg.PatternFlowMplsTrafficClass + (*PatternFlowMplsBottomOfStackCounter)(nil), // 1047: otg.PatternFlowMplsBottomOfStackCounter + (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1048: otg.PatternFlowMplsBottomOfStackMetricTag + (*PatternFlowMplsBottomOfStack)(nil), // 1049: otg.PatternFlowMplsBottomOfStack + (*PatternFlowMplsTimeToLiveCounter)(nil), // 1050: otg.PatternFlowMplsTimeToLiveCounter + (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1051: otg.PatternFlowMplsTimeToLiveMetricTag + (*PatternFlowMplsTimeToLive)(nil), // 1052: otg.PatternFlowMplsTimeToLive + (*Version)(nil), // 1053: otg.Version + (*Success)(nil), // 1054: otg.Success + (*Failure)(nil), // 1055: otg.Failure + (*SetConfigRequest)(nil), // 1056: otg.SetConfigRequest + (*UpdateConfigRequest)(nil), // 1057: otg.UpdateConfigRequest + (*SetConfigResponse)(nil), // 1058: otg.SetConfigResponse + (*GetConfigResponse)(nil), // 1059: otg.GetConfigResponse + (*UpdateConfigResponse)(nil), // 1060: otg.UpdateConfigResponse + (*SetControlStateRequest)(nil), // 1061: otg.SetControlStateRequest + (*SetControlStateResponse)(nil), // 1062: otg.SetControlStateResponse + (*SetControlActionRequest)(nil), // 1063: otg.SetControlActionRequest + (*SetControlActionResponse)(nil), // 1064: otg.SetControlActionResponse + (*GetMetricsRequest)(nil), // 1065: otg.GetMetricsRequest + (*GetMetricsResponse)(nil), // 1066: otg.GetMetricsResponse + (*GetStatesRequest)(nil), // 1067: otg.GetStatesRequest + (*GetStatesResponse)(nil), // 1068: otg.GetStatesResponse + (*GetCaptureRequest)(nil), // 1069: otg.GetCaptureRequest + (*GetCaptureResponse)(nil), // 1070: otg.GetCaptureResponse + (*GetVersionResponse)(nil), // 1071: otg.GetVersionResponse + (*LagProtocol_Choice)(nil), // 1072: otg.LagProtocol.Choice + (*LagPortLacp_ActorActivity)(nil), // 1073: otg.LagPortLacp.ActorActivity + (*EthernetConnection_Choice)(nil), // 1074: otg.EthernetConnection.Choice + (*DeviceVlan_Tpid)(nil), // 1075: otg.DeviceVlan.Tpid + (*DeviceIpv4GatewayMAC_Choice)(nil), // 1076: otg.DeviceIpv4GatewayMAC.Choice + (*DeviceIpv6GatewayMAC_Choice)(nil), // 1077: otg.DeviceIpv6GatewayMAC.Choice + (*Layer1_Speed)(nil), // 1078: otg.Layer1.Speed + (*Layer1_Media)(nil), // 1079: otg.Layer1.Media + (*Layer1FlowControl_Choice)(nil), // 1080: otg.Layer1FlowControl.Choice + (*Capture_Format)(nil), // 1081: otg.Capture.Format + (*CaptureFilter_Choice)(nil), // 1082: otg.CaptureFilter.Choice + (*IsisInterface_NetworkType)(nil), // 1083: otg.IsisInterface.NetworkType + (*IsisInterface_LevelType)(nil), // 1084: otg.IsisInterface.LevelType + (*IsisInterfaceAuthentication_AuthType)(nil), // 1085: otg.IsisInterfaceAuthentication.AuthType + (*IsisAuthenticationBase_AuthType)(nil), // 1086: otg.IsisAuthenticationBase.AuthType + (*IsisV4RouteRange_OriginType)(nil), // 1087: otg.IsisV4RouteRange.OriginType + (*IsisV4RouteRange_RedistributionType)(nil), // 1088: otg.IsisV4RouteRange.RedistributionType + (*IsisV6RouteRange_OriginType)(nil), // 1089: otg.IsisV6RouteRange.OriginType + (*IsisV6RouteRange_RedistributionType)(nil), // 1090: otg.IsisV6RouteRange.RedistributionType + (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1091: otg.DeviceBgpMessageHeaderError.Subcode + (*DeviceBgpOpenMessageError_Subcode)(nil), // 1092: otg.DeviceBgpOpenMessageError.Subcode + (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1093: otg.DeviceBgpUpdateMessageError.Subcode + (*DeviceBgpCeaseError_Subcode)(nil), // 1094: otg.DeviceBgpCeaseError.Subcode + (*BgpV4Peer_AsType)(nil), // 1095: otg.BgpV4Peer.AsType + (*BgpV4Peer_AsNumberWidth)(nil), // 1096: otg.BgpV4Peer.AsNumberWidth + (*BgpV4EthernetSegment_ActiveMode)(nil), // 1097: otg.BgpV4EthernetSegment.ActiveMode + (*BgpRouteAdvanced_Origin)(nil), // 1098: otg.BgpRouteAdvanced.Origin + (*BgpCommunity_Type)(nil), // 1099: otg.BgpCommunity.Type + (*BgpExtCommunity_Type)(nil), // 1100: otg.BgpExtCommunity.Type + (*BgpExtCommunity_Subtype)(nil), // 1101: otg.BgpExtCommunity.Subtype + (*BgpAsPath_AsSetMode)(nil), // 1102: otg.BgpAsPath.AsSetMode + (*BgpAsPathSegment_Type)(nil), // 1103: otg.BgpAsPathSegment.Type + (*BgpV4EvpnEvis_Choice)(nil), // 1104: otg.BgpV4EvpnEvis.Choice + (*BgpV4EviVxlan_ReplicationType)(nil), // 1105: otg.BgpV4EviVxlan.ReplicationType + (*BgpRouteDistinguisher_RdType)(nil), // 1106: otg.BgpRouteDistinguisher.RdType + (*BgpRouteTarget_RtType)(nil), // 1107: otg.BgpRouteTarget.RtType + (*BgpV4RouteRange_NextHopMode)(nil), // 1108: otg.BgpV4RouteRange.NextHopMode + (*BgpV4RouteRange_NextHopAddressType)(nil), // 1109: otg.BgpV4RouteRange.NextHopAddressType + (*BgpExtendedCommunity_Choice)(nil), // 1110: otg.BgpExtendedCommunity.Choice + (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1111: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice + (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1112: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice + (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1113: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice + (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1114: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice + (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1115: otg.BgpExtendedCommunityTransitiveEvpnType.Choice + (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1116: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice + (*BgpV6RouteRange_NextHopMode)(nil), // 1117: otg.BgpV6RouteRange.NextHopMode + (*BgpV6RouteRange_NextHopAddressType)(nil), // 1118: otg.BgpV6RouteRange.NextHopAddressType + (*BgpSrteV4Policy_NextHopMode)(nil), // 1119: otg.BgpSrteV4Policy.NextHopMode + (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1120: otg.BgpSrteV4Policy.NextHopAddressType + (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1121: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily + (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1122: otg.BgpSrteBindingSubTlv.BindingSidType + (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1123: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy + (*BgpSrteSegment_SegmentType)(nil), // 1124: otg.BgpSrteSegment.SegmentType + (*BgpSrteV6Policy_NextHopMode)(nil), // 1125: otg.BgpSrteV6Policy.NextHopMode + (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1126: otg.BgpSrteV6Policy.NextHopAddressType + (*BgpV6Peer_AsType)(nil), // 1127: otg.BgpV6Peer.AsType + (*BgpV6Peer_AsNumberWidth)(nil), // 1128: otg.BgpV6Peer.AsNumberWidth + (*BgpV6EthernetSegment_ActiveMode)(nil), // 1129: otg.BgpV6EthernetSegment.ActiveMode + (*BgpV6EvpnEvis_Choice)(nil), // 1130: otg.BgpV6EvpnEvis.Choice + (*BgpV6EviVxlan_ReplicationType)(nil), // 1131: otg.BgpV6EviVxlan.ReplicationType + (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1132: otg.VxlanV4TunnelDestinationIPMode.Choice + (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1133: otg.VxlanV6TunnelDestinationIPMode.Choice + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1134: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle + (*RsvpEro_PrependNeighborIp)(nil), // 1135: otg.RsvpEro.PrependNeighborIp + (*RsvpEroSubobject_Type)(nil), // 1136: otg.RsvpEroSubobject.Type + (*RsvpEroSubobject_HopType)(nil), // 1137: otg.RsvpEroSubobject.HopType + (*FlowTxRx_Choice)(nil), // 1138: otg.FlowTxRx.Choice + (*FlowRouter_Mode)(nil), // 1139: otg.FlowRouter.Mode + (*FlowHeader_Choice)(nil), // 1140: otg.FlowHeader.Choice + (*FlowIpv4Priority_Choice)(nil), // 1141: otg.FlowIpv4Priority.Choice + (*FlowIcmp_Choice)(nil), // 1142: otg.FlowIcmp.Choice + (*FlowIcmpv6_Choice)(nil), // 1143: otg.FlowIcmpv6.Choice + (*FlowSize_Choice)(nil), // 1144: otg.FlowSize.Choice + (*FlowSizeWeightPairs_Choice)(nil), // 1145: otg.FlowSizeWeightPairs.Choice + (*FlowSizeWeightPairs_Predefined)(nil), // 1146: otg.FlowSizeWeightPairs.Predefined + (*FlowRate_Choice)(nil), // 1147: otg.FlowRate.Choice + (*FlowDuration_Choice)(nil), // 1148: otg.FlowDuration.Choice + (*FlowDelay_Choice)(nil), // 1149: otg.FlowDelay.Choice + (*FlowDurationInterBurstGap_Choice)(nil), // 1150: otg.FlowDurationInterBurstGap.Choice + (*FlowLatencyMetrics_Mode)(nil), // 1151: otg.FlowLatencyMetrics.Mode + (*FlowRxTxRatio_Choice)(nil), // 1152: otg.FlowRxTxRatio.Choice + (*EventRequest_Type)(nil), // 1153: otg.EventRequest.Type + (*LldpConnection_Choice)(nil), // 1154: otg.LldpConnection.Choice + (*LldpChassisId_Choice)(nil), // 1155: otg.LldpChassisId.Choice + (*LldpPortId_Choice)(nil), // 1156: otg.LldpPortId.Choice + (*LldpChassisMacSubType_Choice)(nil), // 1157: otg.LldpChassisMacSubType.Choice + (*LldpPortInterfaceNameSubType_Choice)(nil), // 1158: otg.LldpPortInterfaceNameSubType.Choice + (*LldpSystemName_Choice)(nil), // 1159: otg.LldpSystemName.Choice + (*Error_Kind)(nil), // 1160: otg.Error.Kind + (*ConfigUpdate_Choice)(nil), // 1161: otg.ConfigUpdate.Choice + (*FlowsUpdate_PropertyNames)(nil), // 1162: otg.FlowsUpdate.PropertyNames + (*ControlState_Choice)(nil), // 1163: otg.ControlState.Choice + (*StatePort_Choice)(nil), // 1164: otg.StatePort.Choice + (*StateTraffic_Choice)(nil), // 1165: otg.StateTraffic.Choice + (*StateProtocol_Choice)(nil), // 1166: otg.StateProtocol.Choice + (*StatePortLink_State)(nil), // 1167: otg.StatePortLink.State + (*StatePortCapture_State)(nil), // 1168: otg.StatePortCapture.State + (*StateTrafficFlowTransmit_State)(nil), // 1169: otg.StateTrafficFlowTransmit.State + (*StateProtocolAll_State)(nil), // 1170: otg.StateProtocolAll.State + (*StateProtocolRoute_State)(nil), // 1171: otg.StateProtocolRoute.State + (*StateProtocolLacp_Choice)(nil), // 1172: otg.StateProtocolLacp.Choice + (*StateProtocolLacpAdmin_State)(nil), // 1173: otg.StateProtocolLacpAdmin.State + (*ControlAction_Choice)(nil), // 1174: otg.ControlAction.Choice + (*ActionResponse_Choice)(nil), // 1175: otg.ActionResponse.Choice + (*ActionProtocol_Choice)(nil), // 1176: otg.ActionProtocol.Choice + (*ActionResponseProtocol_Choice)(nil), // 1177: otg.ActionResponseProtocol.Choice + (*ActionProtocolIpv4_Choice)(nil), // 1178: otg.ActionProtocolIpv4.Choice + (*ActionResponseProtocolIpv4_Choice)(nil), // 1179: otg.ActionResponseProtocolIpv4.Choice + (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1180: otg.ActionResponseProtocolIpv4PingResponse.Result + (*ActionProtocolIpv6_Choice)(nil), // 1181: otg.ActionProtocolIpv6.Choice + (*ActionResponseProtocolIpv6_Choice)(nil), // 1182: otg.ActionResponseProtocolIpv6.Choice + (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1183: otg.ActionResponseProtocolIpv6PingResponse.Result + (*ActionProtocolBgp_Choice)(nil), // 1184: otg.ActionProtocolBgp.Choice + (*ActionProtocolBgpNotification_Choice)(nil), // 1185: otg.ActionProtocolBgpNotification.Choice + (*MetricsRequest_Choice)(nil), // 1186: otg.MetricsRequest.Choice + (*MetricsResponse_Choice)(nil), // 1187: otg.MetricsResponse.Choice + (*PortMetricsRequest_ColumnNames)(nil), // 1188: otg.PortMetricsRequest.ColumnNames + (*PortMetric_Link)(nil), // 1189: otg.PortMetric.Link + (*PortMetric_Capture)(nil), // 1190: otg.PortMetric.Capture + (*PortMetric_Transmit)(nil), // 1191: otg.PortMetric.Transmit + (*FlowMetricsRequest_MetricNames)(nil), // 1192: otg.FlowMetricsRequest.MetricNames + (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1193: otg.FlowTaggedMetricsFilter.MetricNames + (*FlowMetric_Transmit)(nil), // 1194: otg.FlowMetric.Transmit + (*FlowMetricTagValue_Choice)(nil), // 1195: otg.FlowMetricTagValue.Choice + (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1196: otg.Bgpv4MetricsRequest.ColumnNames + (*Bgpv4Metric_SessionState)(nil), // 1197: otg.Bgpv4Metric.SessionState + (*Bgpv4Metric_FsmState)(nil), // 1198: otg.Bgpv4Metric.FsmState + (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1199: otg.Bgpv6MetricsRequest.ColumnNames + (*Bgpv6Metric_SessionState)(nil), // 1200: otg.Bgpv6Metric.SessionState + (*Bgpv6Metric_FsmState)(nil), // 1201: otg.Bgpv6Metric.FsmState + (*IsisMetricsRequest_ColumnNames)(nil), // 1202: otg.IsisMetricsRequest.ColumnNames + (*LagMetricsRequest_ColumnNames)(nil), // 1203: otg.LagMetricsRequest.ColumnNames + (*LagMetric_OperStatus)(nil), // 1204: otg.LagMetric.OperStatus + (*LacpMetricsRequest_ColumnNames)(nil), // 1205: otg.LacpMetricsRequest.ColumnNames + (*LacpMetric_Activity)(nil), // 1206: otg.LacpMetric.Activity + (*LacpMetric_Timeout)(nil), // 1207: otg.LacpMetric.Timeout + (*LacpMetric_Synchronization)(nil), // 1208: otg.LacpMetric.Synchronization + (*LldpMetricsRequest_ColumnNames)(nil), // 1209: otg.LldpMetricsRequest.ColumnNames + (*RsvpMetricsRequest_ColumnNames)(nil), // 1210: otg.RsvpMetricsRequest.ColumnNames + (*StatesRequest_Choice)(nil), // 1211: otg.StatesRequest.Choice + (*StatesResponse_Choice)(nil), // 1212: otg.StatesResponse.Choice + (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1213: otg.BgpPrefixStateRequest.PrefixFilters + (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1214: otg.BgpPrefixIpv4UnicastFilter.Origin + (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1215: otg.BgpPrefixIpv6UnicastFilter.Origin + (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1216: otg.BgpPrefixIpv4UnicastState.Origin + (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1217: otg.BgpPrefixIpv6UnicastState.Origin + (*ResultBgpCommunity_Type)(nil), // 1218: otg.ResultBgpCommunity.Type + (*ResultBgpAsPathSegment_Type)(nil), // 1219: otg.ResultBgpAsPathSegment.Type + (*IsisLspState_PduType)(nil), // 1220: otg.IsisLspState.PduType + (*IsisLspV4Prefix_RedistributionType)(nil), // 1221: otg.IsisLspV4Prefix.RedistributionType + (*IsisLspV4Prefix_OriginType)(nil), // 1222: otg.IsisLspV4Prefix.OriginType + (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1223: otg.IsisLspExtendedV4Prefix.RedistributionType + (*IsisLspV6Prefix_RedistributionType)(nil), // 1224: otg.IsisLspV6Prefix.RedistributionType + (*IsisLspV6Prefix_OriginType)(nil), // 1225: otg.IsisLspV6Prefix.OriginType + (*LldpNeighborsState_ChassisIdType)(nil), // 1226: otg.LldpNeighborsState.ChassisIdType + (*LldpNeighborsState_PortIdType)(nil), // 1227: otg.LldpNeighborsState.PortIdType + (*LldpCapabilityState_CapabilityName)(nil), // 1228: otg.LldpCapabilityState.CapabilityName + (*RsvpLspState_SessionStatus)(nil), // 1229: otg.RsvpLspState.SessionStatus + (*RsvpLspState_LastFlapReason)(nil), // 1230: otg.RsvpLspState.LastFlapReason + (*RsvpLspIpv4Ero_Type)(nil), // 1231: otg.RsvpLspIpv4Ero.Type + (*PatternFlowEthernetDst_Choice)(nil), // 1232: otg.PatternFlowEthernetDst.Choice + (*PatternFlowEthernetSrc_Choice)(nil), // 1233: otg.PatternFlowEthernetSrc.Choice + (*PatternFlowEthernetEtherType_Choice)(nil), // 1234: otg.PatternFlowEthernetEtherType.Choice + (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1235: otg.PatternFlowEthernetPfcQueue.Choice + (*PatternFlowVlanPriority_Choice)(nil), // 1236: otg.PatternFlowVlanPriority.Choice + (*PatternFlowVlanCfi_Choice)(nil), // 1237: otg.PatternFlowVlanCfi.Choice + (*PatternFlowVlanId_Choice)(nil), // 1238: otg.PatternFlowVlanId.Choice + (*PatternFlowVlanTpid_Choice)(nil), // 1239: otg.PatternFlowVlanTpid.Choice + (*PatternFlowVxlanFlags_Choice)(nil), // 1240: otg.PatternFlowVxlanFlags.Choice + (*PatternFlowVxlanReserved0_Choice)(nil), // 1241: otg.PatternFlowVxlanReserved0.Choice + (*PatternFlowVxlanVni_Choice)(nil), // 1242: otg.PatternFlowVxlanVni.Choice + (*PatternFlowVxlanReserved1_Choice)(nil), // 1243: otg.PatternFlowVxlanReserved1.Choice + (*PatternFlowIpv4Version_Choice)(nil), // 1244: otg.PatternFlowIpv4Version.Choice + (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1245: otg.PatternFlowIpv4HeaderLength.Choice + (*PatternFlowIpv4TotalLength_Choice)(nil), // 1246: otg.PatternFlowIpv4TotalLength.Choice + (*PatternFlowIpv4Identification_Choice)(nil), // 1247: otg.PatternFlowIpv4Identification.Choice + (*PatternFlowIpv4Reserved_Choice)(nil), // 1248: otg.PatternFlowIpv4Reserved.Choice + (*PatternFlowIpv4DontFragment_Choice)(nil), // 1249: otg.PatternFlowIpv4DontFragment.Choice + (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1250: otg.PatternFlowIpv4MoreFragments.Choice + (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1251: otg.PatternFlowIpv4FragmentOffset.Choice + (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1252: otg.PatternFlowIpv4TimeToLive.Choice + (*PatternFlowIpv4Protocol_Choice)(nil), // 1253: otg.PatternFlowIpv4Protocol.Choice + (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1254: otg.PatternFlowIpv4HeaderChecksum.Choice + (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1255: otg.PatternFlowIpv4HeaderChecksum.Generated + (*PatternFlowIpv4Src_Choice)(nil), // 1256: otg.PatternFlowIpv4Src.Choice + (*PatternFlowIpv4Dst_Choice)(nil), // 1257: otg.PatternFlowIpv4Dst.Choice + (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1258: otg.PatternFlowIpv4PriorityRaw.Choice + (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1259: otg.PatternFlowIpv4DscpPhb.Choice + (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1260: otg.PatternFlowIpv4DscpEcn.Choice + (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1261: otg.PatternFlowIpv4TosPrecedence.Choice + (*PatternFlowIpv4TosDelay_Choice)(nil), // 1262: otg.PatternFlowIpv4TosDelay.Choice + (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1263: otg.PatternFlowIpv4TosThroughput.Choice + (*PatternFlowIpv4TosReliability_Choice)(nil), // 1264: otg.PatternFlowIpv4TosReliability.Choice + (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1265: otg.PatternFlowIpv4TosMonetary.Choice + (*PatternFlowIpv4TosUnused_Choice)(nil), // 1266: otg.PatternFlowIpv4TosUnused.Choice + (*PatternFlowIpv6Version_Choice)(nil), // 1267: otg.PatternFlowIpv6Version.Choice + (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1268: otg.PatternFlowIpv6TrafficClass.Choice + (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1269: otg.PatternFlowIpv6FlowLabel.Choice + (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1270: otg.PatternFlowIpv6PayloadLength.Choice + (*PatternFlowIpv6NextHeader_Choice)(nil), // 1271: otg.PatternFlowIpv6NextHeader.Choice + (*PatternFlowIpv6HopLimit_Choice)(nil), // 1272: otg.PatternFlowIpv6HopLimit.Choice + (*PatternFlowIpv6Src_Choice)(nil), // 1273: otg.PatternFlowIpv6Src.Choice + (*PatternFlowIpv6Dst_Choice)(nil), // 1274: otg.PatternFlowIpv6Dst.Choice + (*PatternFlowPfcPauseDst_Choice)(nil), // 1275: otg.PatternFlowPfcPauseDst.Choice + (*PatternFlowPfcPauseSrc_Choice)(nil), // 1276: otg.PatternFlowPfcPauseSrc.Choice + (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1277: otg.PatternFlowPfcPauseEtherType.Choice + (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1278: otg.PatternFlowPfcPauseControlOpCode.Choice + (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1279: otg.PatternFlowPfcPauseClassEnableVector.Choice + (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1280: otg.PatternFlowPfcPausePauseClass0.Choice + (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1281: otg.PatternFlowPfcPausePauseClass1.Choice + (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1282: otg.PatternFlowPfcPausePauseClass2.Choice + (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1283: otg.PatternFlowPfcPausePauseClass3.Choice + (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1284: otg.PatternFlowPfcPausePauseClass4.Choice + (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1285: otg.PatternFlowPfcPausePauseClass5.Choice + (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1286: otg.PatternFlowPfcPausePauseClass6.Choice + (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1287: otg.PatternFlowPfcPausePauseClass7.Choice + (*PatternFlowEthernetPauseDst_Choice)(nil), // 1288: otg.PatternFlowEthernetPauseDst.Choice + (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1289: otg.PatternFlowEthernetPauseSrc.Choice + (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1290: otg.PatternFlowEthernetPauseEtherType.Choice + (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1291: otg.PatternFlowEthernetPauseControlOpCode.Choice + (*PatternFlowEthernetPauseTime_Choice)(nil), // 1292: otg.PatternFlowEthernetPauseTime.Choice + (*PatternFlowTcpSrcPort_Choice)(nil), // 1293: otg.PatternFlowTcpSrcPort.Choice + (*PatternFlowTcpDstPort_Choice)(nil), // 1294: otg.PatternFlowTcpDstPort.Choice + (*PatternFlowTcpSeqNum_Choice)(nil), // 1295: otg.PatternFlowTcpSeqNum.Choice + (*PatternFlowTcpAckNum_Choice)(nil), // 1296: otg.PatternFlowTcpAckNum.Choice + (*PatternFlowTcpDataOffset_Choice)(nil), // 1297: otg.PatternFlowTcpDataOffset.Choice + (*PatternFlowTcpEcnNs_Choice)(nil), // 1298: otg.PatternFlowTcpEcnNs.Choice + (*PatternFlowTcpEcnCwr_Choice)(nil), // 1299: otg.PatternFlowTcpEcnCwr.Choice + (*PatternFlowTcpEcnEcho_Choice)(nil), // 1300: otg.PatternFlowTcpEcnEcho.Choice + (*PatternFlowTcpCtlUrg_Choice)(nil), // 1301: otg.PatternFlowTcpCtlUrg.Choice + (*PatternFlowTcpCtlAck_Choice)(nil), // 1302: otg.PatternFlowTcpCtlAck.Choice + (*PatternFlowTcpCtlPsh_Choice)(nil), // 1303: otg.PatternFlowTcpCtlPsh.Choice + (*PatternFlowTcpCtlRst_Choice)(nil), // 1304: otg.PatternFlowTcpCtlRst.Choice + (*PatternFlowTcpCtlSyn_Choice)(nil), // 1305: otg.PatternFlowTcpCtlSyn.Choice + (*PatternFlowTcpCtlFin_Choice)(nil), // 1306: otg.PatternFlowTcpCtlFin.Choice + (*PatternFlowTcpWindow_Choice)(nil), // 1307: otg.PatternFlowTcpWindow.Choice + (*PatternFlowUdpSrcPort_Choice)(nil), // 1308: otg.PatternFlowUdpSrcPort.Choice + (*PatternFlowUdpDstPort_Choice)(nil), // 1309: otg.PatternFlowUdpDstPort.Choice + (*PatternFlowUdpLength_Choice)(nil), // 1310: otg.PatternFlowUdpLength.Choice + (*PatternFlowUdpChecksum_Choice)(nil), // 1311: otg.PatternFlowUdpChecksum.Choice + (*PatternFlowUdpChecksum_Generated)(nil), // 1312: otg.PatternFlowUdpChecksum.Generated + (*PatternFlowGreChecksumPresent_Choice)(nil), // 1313: otg.PatternFlowGreChecksumPresent.Choice + (*PatternFlowGreReserved0_Choice)(nil), // 1314: otg.PatternFlowGreReserved0.Choice + (*PatternFlowGreVersion_Choice)(nil), // 1315: otg.PatternFlowGreVersion.Choice + (*PatternFlowGreProtocol_Choice)(nil), // 1316: otg.PatternFlowGreProtocol.Choice + (*PatternFlowGreChecksum_Choice)(nil), // 1317: otg.PatternFlowGreChecksum.Choice + (*PatternFlowGreChecksum_Generated)(nil), // 1318: otg.PatternFlowGreChecksum.Generated + (*PatternFlowGreReserved1_Choice)(nil), // 1319: otg.PatternFlowGreReserved1.Choice + (*PatternFlowGtpv1Version_Choice)(nil), // 1320: otg.PatternFlowGtpv1Version.Choice + (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1321: otg.PatternFlowGtpv1ProtocolType.Choice + (*PatternFlowGtpv1Reserved_Choice)(nil), // 1322: otg.PatternFlowGtpv1Reserved.Choice + (*PatternFlowGtpv1EFlag_Choice)(nil), // 1323: otg.PatternFlowGtpv1EFlag.Choice + (*PatternFlowGtpv1SFlag_Choice)(nil), // 1324: otg.PatternFlowGtpv1SFlag.Choice + (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1325: otg.PatternFlowGtpv1PnFlag.Choice + (*PatternFlowGtpv1MessageType_Choice)(nil), // 1326: otg.PatternFlowGtpv1MessageType.Choice + (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1327: otg.PatternFlowGtpv1MessageLength.Choice + (*PatternFlowGtpv1Teid_Choice)(nil), // 1328: otg.PatternFlowGtpv1Teid.Choice + (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1329: otg.PatternFlowGtpv1SquenceNumber.Choice + (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1330: otg.PatternFlowGtpv1NPduNumber.Choice + (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1331: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice + (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1332: otg.PatternFlowGtpExtensionExtensionLength.Choice + (*PatternFlowGtpExtensionContents_Choice)(nil), // 1333: otg.PatternFlowGtpExtensionContents.Choice + (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1334: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice + (*PatternFlowGtpv2Version_Choice)(nil), // 1335: otg.PatternFlowGtpv2Version.Choice + (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1336: otg.PatternFlowGtpv2PiggybackingFlag.Choice + (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1337: otg.PatternFlowGtpv2TeidFlag.Choice + (*PatternFlowGtpv2Spare1_Choice)(nil), // 1338: otg.PatternFlowGtpv2Spare1.Choice + (*PatternFlowGtpv2MessageType_Choice)(nil), // 1339: otg.PatternFlowGtpv2MessageType.Choice + (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1340: otg.PatternFlowGtpv2MessageLength.Choice + (*PatternFlowGtpv2Teid_Choice)(nil), // 1341: otg.PatternFlowGtpv2Teid.Choice + (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1342: otg.PatternFlowGtpv2SequenceNumber.Choice + (*PatternFlowGtpv2Spare2_Choice)(nil), // 1343: otg.PatternFlowGtpv2Spare2.Choice + (*PatternFlowArpHardwareType_Choice)(nil), // 1344: otg.PatternFlowArpHardwareType.Choice + (*PatternFlowArpProtocolType_Choice)(nil), // 1345: otg.PatternFlowArpProtocolType.Choice + (*PatternFlowArpHardwareLength_Choice)(nil), // 1346: otg.PatternFlowArpHardwareLength.Choice + (*PatternFlowArpProtocolLength_Choice)(nil), // 1347: otg.PatternFlowArpProtocolLength.Choice + (*PatternFlowArpOperation_Choice)(nil), // 1348: otg.PatternFlowArpOperation.Choice + (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1349: otg.PatternFlowArpSenderHardwareAddr.Choice + (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1350: otg.PatternFlowArpSenderProtocolAddr.Choice + (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1351: otg.PatternFlowArpTargetHardwareAddr.Choice + (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1352: otg.PatternFlowArpTargetProtocolAddr.Choice + (*PatternFlowIcmpEchoType_Choice)(nil), // 1353: otg.PatternFlowIcmpEchoType.Choice + (*PatternFlowIcmpEchoCode_Choice)(nil), // 1354: otg.PatternFlowIcmpEchoCode.Choice + (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1355: otg.PatternFlowIcmpEchoChecksum.Choice + (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1356: otg.PatternFlowIcmpEchoChecksum.Generated + (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1357: otg.PatternFlowIcmpEchoIdentifier.Choice + (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1358: otg.PatternFlowIcmpEchoSequenceNumber.Choice + (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1359: otg.PatternFlowIcmpCommonChecksum.Choice + (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1360: otg.PatternFlowIcmpCommonChecksum.Generated + (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1361: otg.PatternFlowIcmpNextFieldsIdentifier.Choice + (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1362: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice + (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1363: otg.PatternFlowIcmpv6EchoType.Choice + (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1364: otg.PatternFlowIcmpv6EchoCode.Choice + (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1365: otg.PatternFlowIcmpv6EchoIdentifier.Choice + (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1366: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice + (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1367: otg.PatternFlowIcmpv6EchoChecksum.Choice + (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1368: otg.PatternFlowIcmpv6EchoChecksum.Generated + (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1369: otg.PatternFlowIcmpv6CommonChecksum.Choice + (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1370: otg.PatternFlowIcmpv6CommonChecksum.Generated + (*PatternFlowPppAddress_Choice)(nil), // 1371: otg.PatternFlowPppAddress.Choice + (*PatternFlowPppControl_Choice)(nil), // 1372: otg.PatternFlowPppControl.Choice + (*PatternFlowPppProtocolType_Choice)(nil), // 1373: otg.PatternFlowPppProtocolType.Choice + (*PatternFlowIgmpv1Version_Choice)(nil), // 1374: otg.PatternFlowIgmpv1Version.Choice + (*PatternFlowIgmpv1Type_Choice)(nil), // 1375: otg.PatternFlowIgmpv1Type.Choice + (*PatternFlowIgmpv1Unused_Choice)(nil), // 1376: otg.PatternFlowIgmpv1Unused.Choice + (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1377: otg.PatternFlowIgmpv1Checksum.Choice + (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1378: otg.PatternFlowIgmpv1Checksum.Generated + (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1379: otg.PatternFlowIgmpv1GroupAddress.Choice + (*PatternFlowMplsLabel_Choice)(nil), // 1380: otg.PatternFlowMplsLabel.Choice + (*PatternFlowMplsTrafficClass_Choice)(nil), // 1381: otg.PatternFlowMplsTrafficClass.Choice + (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1382: otg.PatternFlowMplsBottomOfStack.Choice + (*PatternFlowMplsTimeToLive_Choice)(nil), // 1383: otg.PatternFlowMplsTimeToLive.Choice + (*emptypb.Empty)(nil), // 1384: google.protobuf.Empty } var file_otg_proto_depIdxs = []int32{ - 307, // 0: otg.Config.ports:type_name -> otg.Port - 309, // 1: otg.Config.lags:type_name -> otg.Lag - 325, // 2: otg.Config.layer1:type_name -> otg.Layer1 - 330, // 3: otg.Config.captures:type_name -> otg.Capture - 338, // 4: otg.Config.devices:type_name -> otg.Device - 445, // 5: otg.Config.flows:type_name -> otg.Flow - 494, // 6: otg.Config.events:type_name -> otg.Event - 306, // 7: otg.Config.options:type_name -> otg.ConfigOptions - 500, // 8: otg.Config.lldp:type_name -> otg.Lldp - 308, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions - 339, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions - 310, // 11: otg.Lag.ports:type_name -> otg.LagPort - 311, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol - 314, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp - 315, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase + 314, // 0: otg.Config.ports:type_name -> otg.Port + 316, // 1: otg.Config.lags:type_name -> otg.Lag + 332, // 2: otg.Config.layer1:type_name -> otg.Layer1 + 337, // 3: otg.Config.captures:type_name -> otg.Capture + 345, // 4: otg.Config.devices:type_name -> otg.Device + 470, // 5: otg.Config.flows:type_name -> otg.Flow + 519, // 6: otg.Config.events:type_name -> otg.Event + 313, // 7: otg.Config.options:type_name -> otg.ConfigOptions + 525, // 8: otg.Config.lldp:type_name -> otg.Lldp + 315, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions + 346, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions + 317, // 11: otg.Lag.ports:type_name -> otg.LagPort + 318, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol + 321, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp + 322, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase 0, // 15: otg.LagProtocol.choice:type_name -> otg.LagProtocol.Choice.Enum - 313, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp - 312, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic + 320, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp + 319, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic 1, // 18: otg.LagPortLacp.actor_activity:type_name -> otg.LagPortLacp.ActorActivity.Enum - 318, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan - 317, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection - 319, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 - 322, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 - 318, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan + 325, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan + 324, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection + 326, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 + 329, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 + 325, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan 2, // 24: otg.EthernetConnection.choice:type_name -> otg.EthernetConnection.Choice.Enum 3, // 25: otg.DeviceVlan.tpid:type_name -> otg.DeviceVlan.Tpid.Enum - 321, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC + 328, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC 4, // 27: otg.DeviceIpv4GatewayMAC.choice:type_name -> otg.DeviceIpv4GatewayMAC.Choice.Enum - 324, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC + 331, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC 5, // 29: otg.DeviceIpv6GatewayMAC.choice:type_name -> otg.DeviceIpv6GatewayMAC.Choice.Enum 6, // 30: otg.Layer1.speed:type_name -> otg.Layer1.Speed.Enum 7, // 31: otg.Layer1.media:type_name -> otg.Layer1.Media.Enum - 326, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation - 327, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl + 333, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation + 334, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl 8, // 34: otg.Layer1FlowControl.choice:type_name -> otg.Layer1FlowControl.Choice.Enum - 329, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb - 328, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x - 331, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter + 336, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb + 335, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x + 338, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter 9, // 38: otg.Capture.format:type_name -> otg.Capture.Format.Enum 10, // 39: otg.CaptureFilter.choice:type_name -> otg.CaptureFilter.Choice.Enum - 332, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom - 334, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet - 335, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan - 336, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 - 337, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 - 333, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField - 333, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField - 333, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField - 333, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField - 333, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField - 333, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField - 333, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField - 333, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField - 333, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField - 333, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField - 333, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField - 333, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField - 333, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField - 333, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField - 333, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField - 333, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField - 333, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField - 333, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField - 333, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField - 333, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField - 333, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField - 333, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField - 333, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField - 333, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField - 333, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField - 333, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField - 333, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField - 333, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField - 333, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField - 333, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField - 316, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet - 320, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback - 323, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback - 340, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter - 359, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter - 422, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan - 434, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp - 341, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance - 342, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface - 350, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic - 351, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced - 352, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication - 354, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange - 358, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange + 339, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom + 341, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet + 342, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan + 343, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 + 344, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 + 340, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField + 340, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField + 340, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField + 340, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField + 340, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField + 340, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField + 340, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField + 340, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField + 340, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField + 340, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField + 340, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField + 340, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField + 340, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField + 340, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField + 340, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField + 340, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField + 340, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField + 340, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField + 340, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField + 340, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField + 340, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField + 340, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField + 340, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField + 340, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField + 340, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField + 340, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField + 340, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField + 340, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField + 340, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField + 340, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField + 323, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet + 327, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback + 330, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback + 347, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter + 366, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter + 447, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan + 459, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp + 348, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance + 349, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface + 357, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic + 358, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced + 359, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication + 361, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange + 365, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange 11, // 89: otg.IsisInterface.network_type:type_name -> otg.IsisInterface.NetworkType.Enum 12, // 90: otg.IsisInterface.level_type:type_name -> otg.IsisInterface.LevelType.Enum - 343, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel - 343, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel - 344, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT - 345, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE - 347, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication - 348, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced - 349, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection - 346, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths + 350, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel + 350, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel + 351, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT + 352, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE + 354, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication + 355, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced + 356, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection + 353, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths 13, // 99: otg.IsisInterfaceAuthentication.auth_type:type_name -> otg.IsisInterfaceAuthentication.AuthType.Enum - 353, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase - 353, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase + 360, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase + 360, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase 14, // 102: otg.IsisAuthenticationBase.auth_type:type_name -> otg.IsisAuthenticationBase.AuthType.Enum - 355, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 362, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress 15, // 104: otg.IsisV4RouteRange.origin_type:type_name -> otg.IsisV4RouteRange.OriginType.Enum 16, // 105: otg.IsisV4RouteRange.redistribution_type:type_name -> otg.IsisV4RouteRange.RedistributionType.Enum - 356, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 363, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress 17, // 107: otg.IsisV6RouteRange.origin_type:type_name -> otg.IsisV6RouteRange.OriginType.Enum 18, // 108: otg.IsisV6RouteRange.redistribution_type:type_name -> otg.IsisV6RouteRange.RedistributionType.Enum - 368, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface - 416, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface + 375, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface + 441, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface 19, // 111: otg.DeviceBgpMessageHeaderError.subcode:type_name -> otg.DeviceBgpMessageHeaderError.Subcode.Enum 20, // 112: otg.DeviceBgpOpenMessageError.subcode:type_name -> otg.DeviceBgpOpenMessageError.Subcode.Enum 21, // 113: otg.DeviceBgpUpdateMessageError.subcode:type_name -> otg.DeviceBgpUpdateMessageError.Subcode.Enum 22, // 114: otg.DeviceBgpCeaseError.subcode:type_name -> otg.DeviceBgpCeaseError.Subcode.Enum - 369, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment + 376, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment 23, // 116: otg.BgpV4Peer.as_type:type_name -> otg.BgpV4Peer.AsType.Enum 24, // 117: otg.BgpV4Peer.as_number_width:type_name -> otg.BgpV4Peer.AsNumberWidth.Enum - 382, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced - 383, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability - 384, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 385, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 387, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 388, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 412, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 414, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 367, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer - 370, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 376, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis + 389, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced + 390, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability + 391, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 392, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 412, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 413, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 437, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 439, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 374, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer + 377, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 383, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis 25, // 129: otg.BgpV4EthernetSegment.active_mode:type_name -> otg.BgpV4EthernetSegment.ActiveMode.Enum - 371, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity - 373, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath + 378, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity + 380, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath 26, // 134: otg.BgpRouteAdvanced.origin:type_name -> otg.BgpRouteAdvanced.Origin.Enum 27, // 135: otg.BgpCommunity.type:type_name -> otg.BgpCommunity.Type.Enum 28, // 136: otg.BgpExtCommunity.type:type_name -> otg.BgpExtCommunity.Type.Enum 29, // 137: otg.BgpExtCommunity.subtype:type_name -> otg.BgpExtCommunity.Subtype.Enum 30, // 138: otg.BgpAsPath.as_set_mode:type_name -> otg.BgpAsPath.AsSetMode.Enum - 375, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment + 382, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment 31, // 140: otg.BgpAsPathSegment.type:type_name -> otg.BgpAsPathSegment.Type.Enum 32, // 141: otg.BgpV4EvpnEvis.choice:type_name -> otg.BgpV4EvpnEvis.Choice.Enum - 377, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan - 378, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain + 384, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan + 385, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain 33, // 144: otg.BgpV4EviVxlan.replication_type:type_name -> otg.BgpV4EviVxlan.ReplicationType.Enum - 380, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 381, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 381, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 381, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 381, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 371, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity - 373, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath - 379, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 357, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress - 355, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress - 356, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress - 371, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity - 373, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath + 387, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 388, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 388, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 388, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 388, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 378, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity + 380, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath + 386, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 364, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress + 362, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress + 363, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress + 378, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity + 380, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath 34, // 162: otg.BgpRouteDistinguisher.rd_type:type_name -> otg.BgpRouteDistinguisher.RdType.Enum 35, // 163: otg.BgpRouteTarget.rt_type:type_name -> otg.BgpRouteTarget.RtType.Enum - 355, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 362, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress 36, // 165: otg.BgpV4RouteRange.next_hop_mode:type_name -> otg.BgpV4RouteRange.NextHopMode.Enum 37, // 166: otg.BgpV4RouteRange.next_hop_address_type:type_name -> otg.BgpV4RouteRange.NextHopAddressType.Enum - 371, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity - 374, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath - 386, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath - 373, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 356, // 172: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress - 38, // 173: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum - 39, // 174: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum - 371, // 175: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 176: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity - 374, // 177: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath - 386, // 178: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath - 373, // 179: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 40, // 180: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum - 41, // 181: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum - 371, // 182: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced - 386, // 183: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath - 374, // 184: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath - 372, // 185: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity - 373, // 186: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity - 389, // 187: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv - 390, // 188: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 391, // 189: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 392, // 190: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 393, // 191: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 394, // 192: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 395, // 193: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 396, // 194: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 397, // 195: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 42, // 196: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - 43, // 197: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum - 44, // 198: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - 398, // 199: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment - 45, // 200: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum - 401, // 201: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv - 402, // 202: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv - 403, // 203: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv - 404, // 204: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv - 405, // 205: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv - 406, // 206: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv - 407, // 207: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv - 408, // 208: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv - 409, // 209: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv - 410, // 210: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv - 411, // 211: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv - 400, // 212: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 399, // 213: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 214: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 215: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 216: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 217: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 218: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 400, // 219: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 400, // 220: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 400, // 221: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 46, // 222: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum - 47, // 223: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum - 371, // 224: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced - 386, // 225: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath - 374, // 226: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath - 372, // 227: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity - 373, // 228: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity - 413, // 229: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv - 390, // 230: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 391, // 231: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 392, // 232: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 393, // 233: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 394, // 234: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 395, // 235: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 396, // 236: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 397, // 237: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 417, // 238: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting - 418, // 239: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment - 48, // 240: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum - 49, // 241: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum - 382, // 242: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced - 383, // 243: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability - 384, // 244: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 385, // 245: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 387, // 246: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 388, // 247: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 412, // 248: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 414, // 249: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 415, // 250: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer - 370, // 251: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 419, // 252: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis - 50, // 253: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum - 371, // 254: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 255: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity - 373, // 256: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 257: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath - 51, // 258: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum - 420, // 259: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan - 421, // 260: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain - 52, // 261: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum - 380, // 262: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 381, // 263: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 381, // 264: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 381, // 265: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 381, // 266: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 371, // 267: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 268: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity - 373, // 269: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 270: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath - 379, // 271: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 423, // 272: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel - 424, // 273: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel - 425, // 274: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode - 426, // 275: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode - 53, // 276: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - 427, // 277: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast - 432, // 278: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast - 54, // 279: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - 428, // 280: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast - 433, // 281: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast - 430, // 282: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep - 431, // 283: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep - 429, // 284: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 429, // 285: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 435, // 286: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface - 436, // 287: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface - 437, // 288: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - 438, // 289: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - 55, // 290: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - 439, // 291: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute - 441, // 292: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec - 442, // 293: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute - 443, // 294: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro - 440, // 295: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities - 56, // 296: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum - 444, // 297: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject - 57, // 298: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum - 58, // 299: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum - 446, // 300: otg.Flow.tx_rx:type_name -> otg.FlowTxRx - 449, // 301: otg.Flow.packet:type_name -> otg.FlowHeader - 449, // 302: otg.Flow.egress_packet:type_name -> otg.FlowHeader - 476, // 303: otg.Flow.size:type_name -> otg.FlowSize - 481, // 304: otg.Flow.rate:type_name -> otg.FlowRate - 482, // 305: otg.Flow.duration:type_name -> otg.FlowDuration - 489, // 306: otg.Flow.metrics:type_name -> otg.FlowMetrics - 59, // 307: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum - 447, // 308: otg.FlowTxRx.port:type_name -> otg.FlowPort - 448, // 309: otg.FlowTxRx.device:type_name -> otg.FlowRouter - 60, // 310: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum - 61, // 311: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum - 450, // 312: otg.FlowHeader.custom:type_name -> otg.FlowCustom - 452, // 313: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet - 453, // 314: otg.FlowHeader.vlan:type_name -> otg.FlowVlan - 454, // 315: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan - 455, // 316: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 - 459, // 317: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 - 460, // 318: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause - 461, // 319: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause - 462, // 320: otg.FlowHeader.tcp:type_name -> otg.FlowTcp - 463, // 321: otg.FlowHeader.udp:type_name -> otg.FlowUdp - 464, // 322: otg.FlowHeader.gre:type_name -> otg.FlowGre - 465, // 323: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 - 467, // 324: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 - 468, // 325: otg.FlowHeader.arp:type_name -> otg.FlowArp - 469, // 326: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp - 471, // 327: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 - 473, // 328: otg.FlowHeader.ppp:type_name -> otg.FlowPpp - 474, // 329: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 - 475, // 330: otg.FlowHeader.mpls:type_name -> otg.FlowMpls - 451, // 331: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag - 614, // 332: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst - 617, // 333: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc - 620, // 334: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType - 623, // 335: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue - 626, // 336: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority - 629, // 337: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi - 632, // 338: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId - 635, // 339: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid - 638, // 340: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags - 641, // 341: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 - 644, // 342: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni - 647, // 343: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 - 650, // 344: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version - 653, // 345: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength - 456, // 346: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority - 656, // 347: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength - 659, // 348: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification - 662, // 349: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved - 665, // 350: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment - 668, // 351: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments - 671, // 352: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset - 674, // 353: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive - 677, // 354: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol - 678, // 355: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum - 681, // 356: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src - 684, // 357: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst - 62, // 358: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum - 687, // 359: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw - 458, // 360: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos - 457, // 361: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp - 690, // 362: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb - 693, // 363: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn - 696, // 364: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence - 699, // 365: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay - 702, // 366: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput - 705, // 367: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability - 708, // 368: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary - 711, // 369: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused - 714, // 370: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version - 717, // 371: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass - 720, // 372: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel - 723, // 373: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength - 726, // 374: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader - 729, // 375: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit - 732, // 376: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src - 735, // 377: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst - 738, // 378: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst - 741, // 379: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc - 744, // 380: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType - 747, // 381: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode - 750, // 382: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector - 753, // 383: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 - 756, // 384: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 - 759, // 385: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 - 762, // 386: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 - 765, // 387: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 - 768, // 388: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 - 771, // 389: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 - 774, // 390: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 - 777, // 391: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst - 780, // 392: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc - 783, // 393: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType - 786, // 394: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode - 789, // 395: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime - 792, // 396: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort - 795, // 397: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort - 798, // 398: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum - 801, // 399: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum - 804, // 400: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset - 807, // 401: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs - 810, // 402: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr - 813, // 403: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho - 816, // 404: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg - 819, // 405: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck - 822, // 406: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh - 825, // 407: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst - 828, // 408: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn - 831, // 409: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin - 834, // 410: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow - 837, // 411: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort - 840, // 412: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort - 843, // 413: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength - 844, // 414: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum - 847, // 415: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent - 850, // 416: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 - 853, // 417: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion - 856, // 418: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol - 857, // 419: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum - 860, // 420: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 - 863, // 421: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version - 866, // 422: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType - 869, // 423: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved - 872, // 424: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag - 875, // 425: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag - 878, // 426: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag - 881, // 427: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType - 884, // 428: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength - 887, // 429: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid - 890, // 430: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber - 893, // 431: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber - 896, // 432: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType - 466, // 433: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension - 899, // 434: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength - 902, // 435: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents - 905, // 436: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader - 908, // 437: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version - 911, // 438: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag - 914, // 439: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag - 917, // 440: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 - 920, // 441: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType - 923, // 442: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength - 926, // 443: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid - 929, // 444: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber - 932, // 445: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 - 935, // 446: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType - 938, // 447: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType - 941, // 448: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength - 944, // 449: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength - 947, // 450: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation - 950, // 451: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr - 953, // 452: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr - 956, // 453: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr - 959, // 454: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr - 63, // 455: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum - 470, // 456: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho - 962, // 457: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType - 965, // 458: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode - 966, // 459: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum - 969, // 460: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier - 972, // 461: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber - 64, // 462: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum - 472, // 463: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo - 982, // 464: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType - 985, // 465: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode - 988, // 466: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier - 991, // 467: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber - 992, // 468: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum - 996, // 469: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress - 999, // 470: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl - 1002, // 471: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType - 1005, // 472: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version - 1008, // 473: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type - 1011, // 474: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused - 1012, // 475: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum - 1015, // 476: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress - 1018, // 477: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel - 1021, // 478: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass - 1024, // 479: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack - 1027, // 480: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive - 65, // 481: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum - 477, // 482: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement - 478, // 483: otg.FlowSize.random:type_name -> otg.FlowSizeRandom - 479, // 484: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs - 66, // 485: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum - 67, // 486: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum - 480, // 487: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom - 68, // 488: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum - 69, // 489: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum - 485, // 490: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets - 486, // 491: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds - 487, // 492: otg.FlowDuration.burst:type_name -> otg.FlowBurst - 483, // 493: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous - 484, // 494: otg.FlowContinuous.delay:type_name -> otg.FlowDelay - 70, // 495: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum - 484, // 496: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay - 484, // 497: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay - 488, // 498: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap - 71, // 499: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum - 492, // 500: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio - 490, // 501: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics - 491, // 502: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags - 72, // 503: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum - 73, // 504: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum - 493, // 505: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount - 496, // 506: otg.Event.link:type_name -> otg.EventLink - 495, // 507: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold - 497, // 508: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw - 74, // 509: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum - 498, // 510: otg.EventSubscription.events:type_name -> otg.EventRequest - 501, // 511: otg.Lldp.connection:type_name -> otg.LldpConnection - 502, // 512: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId - 503, // 513: otg.Lldp.port_id:type_name -> otg.LldpPortId - 506, // 514: otg.Lldp.system_name:type_name -> otg.LldpSystemName - 75, // 515: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum - 76, // 516: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum - 504, // 517: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType - 77, // 518: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum - 505, // 519: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType - 78, // 520: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum - 79, // 521: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum - 80, // 522: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum - 81, // 523: otg.Error.kind:type_name -> otg.Error.Kind.Enum - 82, // 524: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum - 510, // 525: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate - 83, // 526: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum - 445, // 527: otg.FlowsUpdate.flows:type_name -> otg.Flow - 84, // 528: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum - 512, // 529: otg.ControlState.port:type_name -> otg.StatePort - 514, // 530: otg.ControlState.protocol:type_name -> otg.StateProtocol - 513, // 531: otg.ControlState.traffic:type_name -> otg.StateTraffic - 85, // 532: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum - 515, // 533: otg.StatePort.link:type_name -> otg.StatePortLink - 516, // 534: otg.StatePort.capture:type_name -> otg.StatePortCapture - 86, // 535: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum - 517, // 536: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit - 87, // 537: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum - 518, // 538: otg.StateProtocol.all:type_name -> otg.StateProtocolAll - 519, // 539: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute - 520, // 540: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp - 88, // 541: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum - 89, // 542: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum - 90, // 543: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum - 91, // 544: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum - 92, // 545: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum - 93, // 546: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum - 521, // 547: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin - 94, // 548: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum - 95, // 549: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum - 525, // 550: otg.ControlAction.protocol:type_name -> otg.ActionProtocol - 524, // 551: otg.ControlActionResponse.response:type_name -> otg.ActionResponse - 96, // 552: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum - 526, // 553: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol - 97, // 554: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum - 527, // 555: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 - 533, // 556: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 - 539, // 557: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp - 98, // 558: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum - 528, // 559: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 - 534, // 560: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 - 99, // 561: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum - 529, // 562: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping - 100, // 563: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum - 531, // 564: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping - 530, // 565: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest - 532, // 566: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse - 101, // 567: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - 102, // 568: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum - 535, // 569: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping - 103, // 570: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum - 537, // 571: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping - 536, // 572: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest - 538, // 573: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse - 104, // 574: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - 105, // 575: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum - 540, // 576: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification - 541, // 577: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart - 106, // 578: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum - 365, // 579: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError - 360, // 580: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError - 361, // 581: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError - 362, // 582: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError - 363, // 583: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired - 364, // 584: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError - 366, // 585: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError - 107, // 586: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum - 544, // 587: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest - 546, // 588: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest - 555, // 589: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest - 557, // 590: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest - 559, // 591: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest - 561, // 592: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest - 563, // 593: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest - 565, // 594: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest - 567, // 595: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest - 108, // 596: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum - 545, // 597: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric - 549, // 598: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric - 556, // 599: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric - 558, // 600: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric - 560, // 601: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric - 562, // 602: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric - 564, // 603: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric - 566, // 604: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric - 568, // 605: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric - 109, // 606: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum - 110, // 607: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum - 111, // 608: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum - 112, // 609: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum - 113, // 610: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum - 547, // 611: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter - 114, // 612: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum - 548, // 613: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter - 115, // 614: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum - 553, // 615: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp - 554, // 616: otg.FlowMetric.latency:type_name -> otg.MetricLatency - 550, // 617: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric - 551, // 618: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag - 553, // 619: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp - 554, // 620: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency - 552, // 621: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue - 116, // 622: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum - 117, // 623: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum - 118, // 624: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum - 119, // 625: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum - 120, // 626: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum - 121, // 627: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum - 122, // 628: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum - 123, // 629: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum - 124, // 630: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum - 125, // 631: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum - 126, // 632: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum - 127, // 633: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum - 128, // 634: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum - 129, // 635: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum - 130, // 636: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum - 131, // 637: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum - 132, // 638: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum - 571, // 639: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest - 573, // 640: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest - 575, // 641: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest - 584, // 642: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest - 601, // 643: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest - 605, // 644: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest - 133, // 645: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum - 572, // 646: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State - 574, // 647: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State - 578, // 648: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState - 585, // 649: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState - 602, // 650: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState - 606, // 651: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState - 134, // 652: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum - 576, // 653: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter - 577, // 654: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter - 135, // 655: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - 136, // 656: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - 579, // 657: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState - 580, // 658: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState - 137, // 659: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum - 581, // 660: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity - 582, // 661: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 138, // 662: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum - 581, // 663: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity - 582, // 664: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 139, // 665: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum - 583, // 666: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment - 140, // 667: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum - 586, // 668: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState - 141, // 669: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum - 589, // 670: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags - 587, // 671: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs - 588, // 672: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname - 590, // 673: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv - 591, // 674: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv - 593, // 675: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv - 594, // 676: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv - 596, // 677: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv - 598, // 678: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv - 592, // 679: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 592, // 680: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 595, // 681: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 595, // 682: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 142, // 683: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum - 143, // 684: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum - 597, // 685: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix - 144, // 686: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - 600, // 687: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 599, // 688: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix - 145, // 689: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum - 146, // 690: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum - 600, // 691: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 147, // 692: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum - 148, // 693: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum - 603, // 694: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState - 604, // 695: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState - 149, // 696: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum - 607, // 697: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState - 608, // 698: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState - 609, // 699: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro - 610, // 700: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero - 150, // 701: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum - 151, // 702: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum - 152, // 703: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum - 153, // 704: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum - 612, // 705: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter - 612, // 706: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter - 613, // 707: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag - 154, // 708: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum - 615, // 709: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter - 615, // 710: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter - 616, // 711: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag - 155, // 712: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum - 618, // 713: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 618, // 714: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 619, // 715: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag - 156, // 716: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum - 621, // 717: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 621, // 718: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 622, // 719: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag - 157, // 720: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum - 624, // 721: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter - 624, // 722: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter - 625, // 723: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag - 158, // 724: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum - 627, // 725: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter - 627, // 726: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter - 628, // 727: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag - 159, // 728: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum - 630, // 729: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter - 630, // 730: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter - 631, // 731: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag - 160, // 732: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum - 633, // 733: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter - 633, // 734: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter - 634, // 735: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag - 161, // 736: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum - 636, // 737: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter - 636, // 738: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter - 637, // 739: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag - 162, // 740: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum - 639, // 741: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter - 639, // 742: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter - 640, // 743: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag - 163, // 744: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum - 642, // 745: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter - 642, // 746: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter - 643, // 747: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag - 164, // 748: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum - 645, // 749: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter - 645, // 750: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter - 646, // 751: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag - 165, // 752: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum - 648, // 753: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter - 648, // 754: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter - 649, // 755: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag - 166, // 756: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum - 651, // 757: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 651, // 758: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 652, // 759: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag - 167, // 760: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum - 654, // 761: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 654, // 762: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 655, // 763: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag - 168, // 764: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum - 657, // 765: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter - 657, // 766: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter - 658, // 767: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag - 169, // 768: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum - 660, // 769: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter - 660, // 770: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter - 661, // 771: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag - 170, // 772: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum - 663, // 773: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 663, // 774: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 664, // 775: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag - 171, // 776: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum - 666, // 777: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 666, // 778: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 667, // 779: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag - 172, // 780: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum - 669, // 781: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 669, // 782: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 670, // 783: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag - 173, // 784: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum - 672, // 785: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 672, // 786: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 673, // 787: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag - 174, // 788: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum - 675, // 789: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter - 675, // 790: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter - 676, // 791: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag - 175, // 792: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - 176, // 793: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - 177, // 794: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum - 679, // 795: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter - 679, // 796: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter - 680, // 797: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag - 178, // 798: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum - 682, // 799: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter - 682, // 800: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter - 683, // 801: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag - 179, // 802: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum - 685, // 803: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 685, // 804: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 686, // 805: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag - 180, // 806: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum - 688, // 807: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 688, // 808: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 689, // 809: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag - 181, // 810: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum - 691, // 811: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 691, // 812: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 692, // 813: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag - 182, // 814: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum - 694, // 815: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 694, // 816: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 695, // 817: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag - 183, // 818: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum - 697, // 819: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter - 697, // 820: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter - 698, // 821: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag - 184, // 822: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum - 700, // 823: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 700, // 824: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 701, // 825: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag - 185, // 826: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum - 703, // 827: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 703, // 828: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 704, // 829: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag - 186, // 830: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum - 706, // 831: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 706, // 832: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 707, // 833: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag - 187, // 834: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum - 709, // 835: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 709, // 836: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 710, // 837: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag - 188, // 838: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum - 712, // 839: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter - 712, // 840: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter - 713, // 841: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag - 189, // 842: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum - 715, // 843: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 715, // 844: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 716, // 845: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag - 190, // 846: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum - 718, // 847: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 718, // 848: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 719, // 849: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag - 191, // 850: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum - 721, // 851: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 721, // 852: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 722, // 853: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag - 192, // 854: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum - 724, // 855: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 724, // 856: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 725, // 857: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag - 193, // 858: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum - 727, // 859: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter - 727, // 860: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter - 728, // 861: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag - 194, // 862: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum - 730, // 863: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter - 730, // 864: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter - 731, // 865: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag - 195, // 866: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum - 733, // 867: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter - 733, // 868: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter - 734, // 869: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag - 196, // 870: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum - 736, // 871: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter - 736, // 872: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter - 737, // 873: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag - 197, // 874: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum - 739, // 875: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter - 739, // 876: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter - 740, // 877: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag - 198, // 878: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum - 742, // 879: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 742, // 880: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 743, // 881: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag - 199, // 882: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - 745, // 883: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 745, // 884: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 746, // 885: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag - 200, // 886: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - 748, // 887: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 748, // 888: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 749, // 889: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag - 201, // 890: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum - 751, // 891: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 751, // 892: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 752, // 893: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag - 202, // 894: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum - 754, // 895: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 754, // 896: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 755, // 897: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag - 203, // 898: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum - 757, // 899: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 757, // 900: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 758, // 901: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag - 204, // 902: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum - 760, // 903: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 760, // 904: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 761, // 905: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag - 205, // 906: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum - 763, // 907: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 763, // 908: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 764, // 909: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag - 206, // 910: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum - 766, // 911: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 766, // 912: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 767, // 913: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag - 207, // 914: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum - 769, // 915: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 769, // 916: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 770, // 917: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag - 208, // 918: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum - 772, // 919: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 772, // 920: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 773, // 921: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag - 209, // 922: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum - 775, // 923: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter - 775, // 924: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter - 776, // 925: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag - 210, // 926: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum - 778, // 927: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 778, // 928: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 779, // 929: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag - 211, // 930: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum - 781, // 931: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 781, // 932: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 782, // 933: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag - 212, // 934: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - 784, // 935: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 784, // 936: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 785, // 937: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag - 213, // 938: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum - 787, // 939: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 787, // 940: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 788, // 941: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag - 214, // 942: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum - 790, // 943: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter - 790, // 944: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter - 791, // 945: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag - 215, // 946: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum - 793, // 947: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter - 793, // 948: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter - 794, // 949: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag - 216, // 950: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum - 796, // 951: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter - 796, // 952: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter - 797, // 953: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag - 217, // 954: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum - 799, // 955: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter - 799, // 956: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter - 800, // 957: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag - 218, // 958: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum - 802, // 959: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter - 802, // 960: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter - 803, // 961: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag - 219, // 962: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum - 805, // 963: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter - 805, // 964: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter - 806, // 965: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag - 220, // 966: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum - 808, // 967: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter - 808, // 968: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter - 809, // 969: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag - 221, // 970: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum - 811, // 971: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter - 811, // 972: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter - 812, // 973: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag - 222, // 974: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum - 814, // 975: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter - 814, // 976: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter - 815, // 977: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag - 223, // 978: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum - 817, // 979: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter - 817, // 980: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter - 818, // 981: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag - 224, // 982: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum - 820, // 983: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter - 820, // 984: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter - 821, // 985: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag - 225, // 986: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum - 823, // 987: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter - 823, // 988: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter - 824, // 989: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag - 226, // 990: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum - 826, // 991: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter - 826, // 992: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter - 827, // 993: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag - 227, // 994: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum - 829, // 995: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter - 829, // 996: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter - 830, // 997: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag - 228, // 998: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum - 832, // 999: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter - 832, // 1000: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter - 833, // 1001: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag - 229, // 1002: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum - 835, // 1003: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter - 835, // 1004: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter - 836, // 1005: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag - 230, // 1006: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum - 838, // 1007: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter - 838, // 1008: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter - 839, // 1009: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag - 231, // 1010: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum - 841, // 1011: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter - 841, // 1012: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter - 842, // 1013: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag - 232, // 1014: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum - 233, // 1015: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum - 234, // 1016: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum - 845, // 1017: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter - 845, // 1018: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter - 846, // 1019: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag - 235, // 1020: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum - 848, // 1021: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter - 848, // 1022: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter - 849, // 1023: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag - 236, // 1024: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum - 851, // 1025: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter - 851, // 1026: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter - 852, // 1027: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag - 237, // 1028: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum - 854, // 1029: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter - 854, // 1030: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter - 855, // 1031: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag - 238, // 1032: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum - 239, // 1033: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum - 240, // 1034: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum - 858, // 1035: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter - 858, // 1036: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter - 859, // 1037: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag - 241, // 1038: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum - 861, // 1039: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter - 861, // 1040: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter - 862, // 1041: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag - 242, // 1042: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum - 864, // 1043: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 864, // 1044: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 865, // 1045: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag - 243, // 1046: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum - 867, // 1047: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter - 867, // 1048: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter - 868, // 1049: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag - 244, // 1050: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum - 870, // 1051: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter - 870, // 1052: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter - 871, // 1053: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag - 245, // 1054: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum - 873, // 1055: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter - 873, // 1056: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter - 874, // 1057: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag - 246, // 1058: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum - 876, // 1059: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 876, // 1060: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 877, // 1061: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag - 247, // 1062: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum - 879, // 1063: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 879, // 1064: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 880, // 1065: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag - 248, // 1066: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum - 882, // 1067: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 882, // 1068: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 883, // 1069: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag - 249, // 1070: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum - 885, // 1071: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter - 885, // 1072: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter - 886, // 1073: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag - 250, // 1074: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - 888, // 1075: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 888, // 1076: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 889, // 1077: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag - 251, // 1078: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum - 891, // 1079: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 891, // 1080: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 892, // 1081: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag - 252, // 1082: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - 894, // 1083: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 894, // 1084: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 895, // 1085: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - 253, // 1086: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - 897, // 1087: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 897, // 1088: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 898, // 1089: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag - 254, // 1090: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum - 900, // 1091: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 900, // 1092: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 901, // 1093: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag - 255, // 1094: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - 903, // 1095: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 903, // 1096: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 904, // 1097: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - 256, // 1098: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum - 906, // 1099: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter - 906, // 1100: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter - 907, // 1101: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag - 257, // 1102: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - 909, // 1103: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 909, // 1104: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 910, // 1105: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag - 258, // 1106: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum - 912, // 1107: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 912, // 1108: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 913, // 1109: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag - 259, // 1110: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum - 915, // 1111: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter - 915, // 1112: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter - 916, // 1113: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag - 260, // 1114: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum - 918, // 1115: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 918, // 1116: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 919, // 1117: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag - 261, // 1118: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum - 921, // 1119: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 921, // 1120: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 922, // 1121: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag - 262, // 1122: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum - 924, // 1123: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter - 924, // 1124: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter - 925, // 1125: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag - 263, // 1126: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - 927, // 1127: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 927, // 1128: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 928, // 1129: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag - 264, // 1130: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum - 930, // 1131: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter - 930, // 1132: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter - 931, // 1133: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag - 265, // 1134: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum - 933, // 1135: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter - 933, // 1136: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter - 934, // 1137: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag - 266, // 1138: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum - 936, // 1139: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter - 936, // 1140: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter - 937, // 1141: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag - 267, // 1142: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum - 939, // 1143: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter - 939, // 1144: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter - 940, // 1145: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag - 268, // 1146: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum - 942, // 1147: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter - 942, // 1148: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter - 943, // 1149: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag - 269, // 1150: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum - 945, // 1151: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter - 945, // 1152: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter - 946, // 1153: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag - 270, // 1154: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - 948, // 1155: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 948, // 1156: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 949, // 1157: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag - 271, // 1158: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - 951, // 1159: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 951, // 1160: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 952, // 1161: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag - 272, // 1162: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - 954, // 1163: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 954, // 1164: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 955, // 1165: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag - 273, // 1166: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - 957, // 1167: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 957, // 1168: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 958, // 1169: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag - 274, // 1170: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum - 960, // 1171: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 960, // 1172: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 961, // 1173: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag - 275, // 1174: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum - 963, // 1175: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 963, // 1176: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 964, // 1177: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag - 276, // 1178: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum - 277, // 1179: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum - 278, // 1180: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - 967, // 1181: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 967, // 1182: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 968, // 1183: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag - 279, // 1184: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - 970, // 1185: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 970, // 1186: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 971, // 1187: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag - 280, // 1188: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum - 281, // 1189: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum - 282, // 1190: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - 974, // 1191: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 974, // 1192: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 975, // 1193: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - 283, // 1194: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - 977, // 1195: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 977, // 1196: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 978, // 1197: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - 284, // 1198: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum - 980, // 1199: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 980, // 1200: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 981, // 1201: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag - 285, // 1202: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum - 983, // 1203: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 983, // 1204: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 984, // 1205: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag - 286, // 1206: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - 986, // 1207: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 986, // 1208: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 987, // 1209: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag - 287, // 1210: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - 989, // 1211: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 989, // 1212: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 990, // 1213: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - 288, // 1214: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - 289, // 1215: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - 290, // 1216: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - 291, // 1217: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - 292, // 1218: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum - 994, // 1219: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter - 994, // 1220: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter - 995, // 1221: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag - 293, // 1222: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum - 997, // 1223: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter - 997, // 1224: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter - 998, // 1225: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag - 294, // 1226: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum - 1000, // 1227: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1000, // 1228: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1001, // 1229: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag - 295, // 1230: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum - 1003, // 1231: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1003, // 1232: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1004, // 1233: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag - 296, // 1234: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum - 1006, // 1235: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1006, // 1236: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1007, // 1237: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag - 297, // 1238: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum - 1009, // 1239: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1009, // 1240: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1010, // 1241: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag - 298, // 1242: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum - 299, // 1243: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum - 300, // 1244: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - 1013, // 1245: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1013, // 1246: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1014, // 1247: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag - 301, // 1248: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum - 1016, // 1249: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter - 1016, // 1250: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter - 1017, // 1251: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag - 302, // 1252: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum - 1019, // 1253: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1019, // 1254: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1020, // 1255: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag - 303, // 1256: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum - 1022, // 1257: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1022, // 1258: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1023, // 1259: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag - 304, // 1260: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum - 1025, // 1261: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1025, // 1262: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1026, // 1263: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag - 508, // 1264: otg.Success.warning:type_name -> otg.Warning - 507, // 1265: otg.Failure.error:type_name -> otg.Error - 305, // 1266: otg.SetConfigRequest.config:type_name -> otg.Config - 509, // 1267: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate - 508, // 1268: otg.SetConfigResponse.warning:type_name -> otg.Warning - 305, // 1269: otg.GetConfigResponse.config:type_name -> otg.Config - 508, // 1270: otg.UpdateConfigResponse.warning:type_name -> otg.Warning - 511, // 1271: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState - 508, // 1272: otg.SetControlStateResponse.warning:type_name -> otg.Warning - 522, // 1273: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction - 523, // 1274: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse - 542, // 1275: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest - 543, // 1276: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse - 569, // 1277: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest - 570, // 1278: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse - 611, // 1279: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest - 1028, // 1280: otg.GetVersionResponse.version:type_name -> otg.Version - 1031, // 1281: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest - 1352, // 1282: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty - 1032, // 1283: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest - 1036, // 1284: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest - 1038, // 1285: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest - 1040, // 1286: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest - 1042, // 1287: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest - 1044, // 1288: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest - 1352, // 1289: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty - 1033, // 1290: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse - 1034, // 1291: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse - 1035, // 1292: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse - 1037, // 1293: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse - 1039, // 1294: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse - 1041, // 1295: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse - 1043, // 1296: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse - 1045, // 1297: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse - 1046, // 1298: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse - 1290, // [1290:1299] is the sub-list for method output_type - 1281, // [1281:1290] is the sub-list for method input_type - 1281, // [1281:1281] is the sub-list for extension type_name - 1281, // [1281:1281] is the sub-list for extension extendee - 0, // [0:1281] is the sub-list for field type_name + 378, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity + 381, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath + 393, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath + 380, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 394, // 172: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 38, // 173: otg.BgpExtendedCommunity.choice:type_name -> otg.BgpExtendedCommunity.Choice.Enum + 397, // 174: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType + 400, // 175: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType + 403, // 176: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType + 406, // 177: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType + 408, // 178: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType + 410, // 179: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType + 411, // 180: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType + 39, // 181: otg.BgpExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + 395, // 182: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + 396, // 183: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + 40, // 184: otg.BgpExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + 399, // 185: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + 398, // 186: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + 41, // 187: otg.BgpExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + 401, // 188: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + 402, // 189: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + 42, // 190: otg.BgpExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + 404, // 191: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + 405, // 192: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + 43, // 193: otg.BgpExtendedCommunityTransitiveEvpnType.choice:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + 407, // 194: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + 44, // 195: otg.BgpExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + 409, // 196: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + 363, // 197: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 45, // 198: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum + 46, // 199: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum + 378, // 200: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 201: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity + 381, // 202: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath + 393, // 203: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath + 380, // 204: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 394, // 205: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 47, // 206: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum + 48, // 207: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum + 378, // 208: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced + 393, // 209: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath + 381, // 210: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath + 379, // 211: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity + 380, // 212: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity + 414, // 213: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv + 415, // 214: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 416, // 215: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 417, // 216: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 418, // 217: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 419, // 218: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 420, // 219: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 421, // 220: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 422, // 221: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 49, // 222: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + 50, // 223: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum + 51, // 224: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + 423, // 225: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment + 52, // 226: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum + 426, // 227: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv + 427, // 228: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv + 428, // 229: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv + 429, // 230: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv + 430, // 231: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv + 431, // 232: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv + 432, // 233: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv + 433, // 234: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv + 434, // 235: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv + 435, // 236: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv + 436, // 237: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv + 425, // 238: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 424, // 239: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 240: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 241: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 242: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 243: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 244: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 425, // 245: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 425, // 246: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 425, // 247: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 53, // 248: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum + 54, // 249: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum + 378, // 250: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced + 393, // 251: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath + 381, // 252: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath + 379, // 253: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity + 380, // 254: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity + 438, // 255: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv + 415, // 256: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 416, // 257: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 417, // 258: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 418, // 259: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 419, // 260: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 420, // 261: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 421, // 262: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 422, // 263: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 442, // 264: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting + 443, // 265: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment + 55, // 266: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum + 56, // 267: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum + 389, // 268: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced + 390, // 269: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability + 391, // 270: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 392, // 271: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 412, // 272: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 413, // 273: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 437, // 274: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 439, // 275: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 440, // 276: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer + 377, // 277: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 444, // 278: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis + 57, // 279: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum + 378, // 280: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 281: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity + 380, // 282: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 283: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath + 58, // 284: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum + 445, // 285: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan + 446, // 286: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain + 59, // 287: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum + 387, // 288: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 388, // 289: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 388, // 290: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 388, // 291: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 388, // 292: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 378, // 293: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 294: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity + 380, // 295: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 296: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath + 386, // 297: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 448, // 298: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel + 449, // 299: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel + 450, // 300: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode + 451, // 301: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode + 60, // 302: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + 452, // 303: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast + 457, // 304: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast + 61, // 305: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + 453, // 306: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast + 458, // 307: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast + 455, // 308: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep + 456, // 309: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep + 454, // 310: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 454, // 311: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 460, // 312: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface + 461, // 313: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface + 462, // 314: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + 463, // 315: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + 62, // 316: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + 464, // 317: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute + 466, // 318: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec + 467, // 319: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute + 468, // 320: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro + 465, // 321: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities + 63, // 322: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum + 469, // 323: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject + 64, // 324: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum + 65, // 325: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum + 471, // 326: otg.Flow.tx_rx:type_name -> otg.FlowTxRx + 474, // 327: otg.Flow.packet:type_name -> otg.FlowHeader + 474, // 328: otg.Flow.egress_packet:type_name -> otg.FlowHeader + 501, // 329: otg.Flow.size:type_name -> otg.FlowSize + 506, // 330: otg.Flow.rate:type_name -> otg.FlowRate + 507, // 331: otg.Flow.duration:type_name -> otg.FlowDuration + 514, // 332: otg.Flow.metrics:type_name -> otg.FlowMetrics + 66, // 333: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum + 472, // 334: otg.FlowTxRx.port:type_name -> otg.FlowPort + 473, // 335: otg.FlowTxRx.device:type_name -> otg.FlowRouter + 67, // 336: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum + 68, // 337: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum + 475, // 338: otg.FlowHeader.custom:type_name -> otg.FlowCustom + 477, // 339: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet + 478, // 340: otg.FlowHeader.vlan:type_name -> otg.FlowVlan + 479, // 341: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan + 480, // 342: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 + 484, // 343: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 + 485, // 344: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause + 486, // 345: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause + 487, // 346: otg.FlowHeader.tcp:type_name -> otg.FlowTcp + 488, // 347: otg.FlowHeader.udp:type_name -> otg.FlowUdp + 489, // 348: otg.FlowHeader.gre:type_name -> otg.FlowGre + 490, // 349: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 + 492, // 350: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 + 493, // 351: otg.FlowHeader.arp:type_name -> otg.FlowArp + 494, // 352: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp + 496, // 353: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 + 498, // 354: otg.FlowHeader.ppp:type_name -> otg.FlowPpp + 499, // 355: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 + 500, // 356: otg.FlowHeader.mpls:type_name -> otg.FlowMpls + 476, // 357: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag + 639, // 358: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst + 642, // 359: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc + 645, // 360: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType + 648, // 361: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue + 651, // 362: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority + 654, // 363: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi + 657, // 364: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId + 660, // 365: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid + 663, // 366: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags + 666, // 367: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 + 669, // 368: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni + 672, // 369: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 + 675, // 370: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version + 678, // 371: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength + 481, // 372: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority + 681, // 373: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength + 684, // 374: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification + 687, // 375: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved + 690, // 376: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment + 693, // 377: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments + 696, // 378: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset + 699, // 379: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive + 702, // 380: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol + 703, // 381: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum + 706, // 382: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src + 709, // 383: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst + 69, // 384: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum + 712, // 385: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw + 483, // 386: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos + 482, // 387: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp + 715, // 388: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb + 718, // 389: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn + 721, // 390: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence + 724, // 391: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay + 727, // 392: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput + 730, // 393: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability + 733, // 394: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary + 736, // 395: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused + 739, // 396: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version + 742, // 397: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass + 745, // 398: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel + 748, // 399: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength + 751, // 400: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader + 754, // 401: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit + 757, // 402: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src + 760, // 403: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst + 763, // 404: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst + 766, // 405: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc + 769, // 406: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType + 772, // 407: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode + 775, // 408: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector + 778, // 409: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 + 781, // 410: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 + 784, // 411: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 + 787, // 412: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 + 790, // 413: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 + 793, // 414: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 + 796, // 415: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 + 799, // 416: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 + 802, // 417: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst + 805, // 418: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc + 808, // 419: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType + 811, // 420: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode + 814, // 421: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime + 817, // 422: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort + 820, // 423: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort + 823, // 424: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum + 826, // 425: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum + 829, // 426: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset + 832, // 427: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs + 835, // 428: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr + 838, // 429: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho + 841, // 430: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg + 844, // 431: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck + 847, // 432: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh + 850, // 433: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst + 853, // 434: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn + 856, // 435: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin + 859, // 436: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow + 862, // 437: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort + 865, // 438: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort + 868, // 439: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength + 869, // 440: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum + 872, // 441: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent + 875, // 442: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 + 878, // 443: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion + 881, // 444: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol + 882, // 445: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum + 885, // 446: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 + 888, // 447: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version + 891, // 448: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType + 894, // 449: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved + 897, // 450: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag + 900, // 451: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag + 903, // 452: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag + 906, // 453: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType + 909, // 454: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength + 912, // 455: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid + 915, // 456: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber + 918, // 457: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber + 921, // 458: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType + 491, // 459: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension + 924, // 460: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength + 927, // 461: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents + 930, // 462: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader + 933, // 463: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version + 936, // 464: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag + 939, // 465: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag + 942, // 466: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 + 945, // 467: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType + 948, // 468: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength + 951, // 469: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid + 954, // 470: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber + 957, // 471: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 + 960, // 472: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType + 963, // 473: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType + 966, // 474: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength + 969, // 475: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength + 972, // 476: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation + 975, // 477: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr + 978, // 478: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr + 981, // 479: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr + 984, // 480: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr + 70, // 481: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum + 495, // 482: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho + 987, // 483: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType + 990, // 484: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode + 991, // 485: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum + 994, // 486: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier + 997, // 487: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber + 71, // 488: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum + 497, // 489: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo + 1007, // 490: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType + 1010, // 491: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode + 1013, // 492: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier + 1016, // 493: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber + 1017, // 494: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum + 1021, // 495: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress + 1024, // 496: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl + 1027, // 497: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType + 1030, // 498: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version + 1033, // 499: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type + 1036, // 500: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused + 1037, // 501: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum + 1040, // 502: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress + 1043, // 503: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel + 1046, // 504: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass + 1049, // 505: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack + 1052, // 506: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive + 72, // 507: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum + 502, // 508: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement + 503, // 509: otg.FlowSize.random:type_name -> otg.FlowSizeRandom + 504, // 510: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs + 73, // 511: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum + 74, // 512: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum + 505, // 513: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom + 75, // 514: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum + 76, // 515: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum + 510, // 516: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets + 511, // 517: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds + 512, // 518: otg.FlowDuration.burst:type_name -> otg.FlowBurst + 508, // 519: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous + 509, // 520: otg.FlowContinuous.delay:type_name -> otg.FlowDelay + 77, // 521: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum + 509, // 522: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay + 509, // 523: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay + 513, // 524: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap + 78, // 525: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum + 517, // 526: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio + 515, // 527: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics + 516, // 528: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags + 79, // 529: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum + 80, // 530: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum + 518, // 531: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount + 521, // 532: otg.Event.link:type_name -> otg.EventLink + 520, // 533: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold + 522, // 534: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw + 81, // 535: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum + 523, // 536: otg.EventSubscription.events:type_name -> otg.EventRequest + 526, // 537: otg.Lldp.connection:type_name -> otg.LldpConnection + 527, // 538: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId + 528, // 539: otg.Lldp.port_id:type_name -> otg.LldpPortId + 531, // 540: otg.Lldp.system_name:type_name -> otg.LldpSystemName + 82, // 541: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum + 83, // 542: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum + 529, // 543: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType + 84, // 544: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum + 530, // 545: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType + 85, // 546: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum + 86, // 547: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum + 87, // 548: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum + 88, // 549: otg.Error.kind:type_name -> otg.Error.Kind.Enum + 89, // 550: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum + 535, // 551: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate + 90, // 552: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum + 470, // 553: otg.FlowsUpdate.flows:type_name -> otg.Flow + 91, // 554: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum + 537, // 555: otg.ControlState.port:type_name -> otg.StatePort + 539, // 556: otg.ControlState.protocol:type_name -> otg.StateProtocol + 538, // 557: otg.ControlState.traffic:type_name -> otg.StateTraffic + 92, // 558: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum + 540, // 559: otg.StatePort.link:type_name -> otg.StatePortLink + 541, // 560: otg.StatePort.capture:type_name -> otg.StatePortCapture + 93, // 561: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum + 542, // 562: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit + 94, // 563: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum + 543, // 564: otg.StateProtocol.all:type_name -> otg.StateProtocolAll + 544, // 565: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute + 545, // 566: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp + 95, // 567: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum + 96, // 568: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum + 97, // 569: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum + 98, // 570: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum + 99, // 571: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum + 100, // 572: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum + 546, // 573: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin + 101, // 574: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum + 102, // 575: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum + 550, // 576: otg.ControlAction.protocol:type_name -> otg.ActionProtocol + 549, // 577: otg.ControlActionResponse.response:type_name -> otg.ActionResponse + 103, // 578: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum + 551, // 579: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol + 104, // 580: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum + 552, // 581: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 + 558, // 582: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 + 564, // 583: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp + 105, // 584: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum + 553, // 585: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 + 559, // 586: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 + 106, // 587: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum + 554, // 588: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping + 107, // 589: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum + 556, // 590: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping + 555, // 591: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest + 557, // 592: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse + 108, // 593: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + 109, // 594: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum + 560, // 595: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping + 110, // 596: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum + 562, // 597: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping + 561, // 598: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest + 563, // 599: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse + 111, // 600: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + 112, // 601: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum + 565, // 602: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification + 566, // 603: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart + 113, // 604: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum + 372, // 605: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError + 367, // 606: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError + 368, // 607: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError + 369, // 608: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError + 370, // 609: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired + 371, // 610: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError + 373, // 611: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError + 114, // 612: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum + 569, // 613: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest + 571, // 614: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest + 580, // 615: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest + 582, // 616: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest + 584, // 617: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest + 586, // 618: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest + 588, // 619: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest + 590, // 620: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest + 592, // 621: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest + 115, // 622: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum + 570, // 623: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric + 574, // 624: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric + 581, // 625: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric + 583, // 626: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric + 585, // 627: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric + 587, // 628: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric + 589, // 629: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric + 591, // 630: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric + 593, // 631: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric + 116, // 632: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum + 117, // 633: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum + 118, // 634: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum + 119, // 635: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum + 120, // 636: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum + 572, // 637: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter + 121, // 638: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum + 573, // 639: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter + 122, // 640: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum + 578, // 641: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp + 579, // 642: otg.FlowMetric.latency:type_name -> otg.MetricLatency + 575, // 643: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric + 576, // 644: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag + 578, // 645: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp + 579, // 646: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency + 577, // 647: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue + 123, // 648: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum + 124, // 649: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum + 125, // 650: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum + 126, // 651: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum + 127, // 652: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum + 128, // 653: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum + 129, // 654: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum + 130, // 655: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum + 131, // 656: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum + 132, // 657: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum + 133, // 658: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum + 134, // 659: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum + 135, // 660: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum + 136, // 661: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum + 137, // 662: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum + 138, // 663: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum + 139, // 664: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum + 596, // 665: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest + 598, // 666: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest + 600, // 667: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest + 609, // 668: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest + 626, // 669: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest + 630, // 670: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest + 140, // 671: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum + 597, // 672: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State + 599, // 673: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State + 603, // 674: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState + 610, // 675: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState + 627, // 676: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState + 631, // 677: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState + 141, // 678: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum + 601, // 679: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter + 602, // 680: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter + 142, // 681: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + 143, // 682: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + 604, // 683: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState + 605, // 684: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState + 144, // 685: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum + 606, // 686: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity + 607, // 687: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 145, // 688: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum + 606, // 689: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity + 607, // 690: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 146, // 691: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum + 608, // 692: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment + 147, // 693: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum + 611, // 694: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState + 148, // 695: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum + 614, // 696: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags + 612, // 697: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs + 613, // 698: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname + 615, // 699: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv + 616, // 700: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv + 618, // 701: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv + 619, // 702: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv + 621, // 703: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv + 623, // 704: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv + 617, // 705: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 617, // 706: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 620, // 707: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 620, // 708: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 149, // 709: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum + 150, // 710: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum + 622, // 711: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix + 151, // 712: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + 625, // 713: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 624, // 714: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix + 152, // 715: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum + 153, // 716: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum + 625, // 717: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 154, // 718: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum + 155, // 719: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum + 628, // 720: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState + 629, // 721: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState + 156, // 722: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum + 632, // 723: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState + 633, // 724: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState + 634, // 725: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro + 635, // 726: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero + 157, // 727: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum + 158, // 728: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum + 159, // 729: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum + 160, // 730: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum + 637, // 731: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter + 637, // 732: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter + 638, // 733: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag + 161, // 734: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum + 640, // 735: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter + 640, // 736: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter + 641, // 737: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag + 162, // 738: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum + 643, // 739: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 643, // 740: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 644, // 741: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag + 163, // 742: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum + 646, // 743: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 646, // 744: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 647, // 745: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag + 164, // 746: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum + 649, // 747: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter + 649, // 748: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter + 650, // 749: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag + 165, // 750: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum + 652, // 751: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter + 652, // 752: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter + 653, // 753: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag + 166, // 754: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum + 655, // 755: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter + 655, // 756: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter + 656, // 757: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag + 167, // 758: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum + 658, // 759: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter + 658, // 760: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter + 659, // 761: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag + 168, // 762: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum + 661, // 763: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter + 661, // 764: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter + 662, // 765: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag + 169, // 766: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum + 664, // 767: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter + 664, // 768: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter + 665, // 769: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag + 170, // 770: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum + 667, // 771: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter + 667, // 772: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter + 668, // 773: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag + 171, // 774: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum + 670, // 775: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter + 670, // 776: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter + 671, // 777: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag + 172, // 778: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum + 673, // 779: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter + 673, // 780: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter + 674, // 781: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag + 173, // 782: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum + 676, // 783: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 676, // 784: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 677, // 785: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag + 174, // 786: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum + 679, // 787: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 679, // 788: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 680, // 789: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag + 175, // 790: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum + 682, // 791: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter + 682, // 792: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter + 683, // 793: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag + 176, // 794: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum + 685, // 795: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter + 685, // 796: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter + 686, // 797: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag + 177, // 798: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum + 688, // 799: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 688, // 800: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 689, // 801: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag + 178, // 802: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum + 691, // 803: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 691, // 804: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 692, // 805: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag + 179, // 806: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum + 694, // 807: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 694, // 808: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 695, // 809: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag + 180, // 810: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum + 697, // 811: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 697, // 812: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 698, // 813: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag + 181, // 814: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum + 700, // 815: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter + 700, // 816: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter + 701, // 817: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag + 182, // 818: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + 183, // 819: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + 184, // 820: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum + 704, // 821: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter + 704, // 822: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter + 705, // 823: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag + 185, // 824: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum + 707, // 825: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter + 707, // 826: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter + 708, // 827: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag + 186, // 828: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum + 710, // 829: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 710, // 830: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 711, // 831: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag + 187, // 832: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum + 713, // 833: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 713, // 834: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 714, // 835: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag + 188, // 836: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum + 716, // 837: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 716, // 838: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 717, // 839: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag + 189, // 840: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum + 719, // 841: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 719, // 842: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 720, // 843: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag + 190, // 844: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum + 722, // 845: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter + 722, // 846: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter + 723, // 847: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag + 191, // 848: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum + 725, // 849: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 725, // 850: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 726, // 851: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag + 192, // 852: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum + 728, // 853: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 728, // 854: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 729, // 855: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag + 193, // 856: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum + 731, // 857: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 731, // 858: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 732, // 859: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag + 194, // 860: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum + 734, // 861: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 734, // 862: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 735, // 863: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag + 195, // 864: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum + 737, // 865: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter + 737, // 866: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter + 738, // 867: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag + 196, // 868: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum + 740, // 869: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 740, // 870: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 741, // 871: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag + 197, // 872: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum + 743, // 873: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 743, // 874: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 744, // 875: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag + 198, // 876: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum + 746, // 877: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 746, // 878: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 747, // 879: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag + 199, // 880: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum + 749, // 881: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 749, // 882: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 750, // 883: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag + 200, // 884: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum + 752, // 885: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter + 752, // 886: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter + 753, // 887: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag + 201, // 888: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum + 755, // 889: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter + 755, // 890: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter + 756, // 891: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag + 202, // 892: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum + 758, // 893: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter + 758, // 894: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter + 759, // 895: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag + 203, // 896: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum + 761, // 897: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter + 761, // 898: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter + 762, // 899: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag + 204, // 900: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum + 764, // 901: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter + 764, // 902: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter + 765, // 903: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag + 205, // 904: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum + 767, // 905: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 767, // 906: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 768, // 907: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag + 206, // 908: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + 770, // 909: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 770, // 910: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 771, // 911: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag + 207, // 912: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + 773, // 913: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 773, // 914: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 774, // 915: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag + 208, // 916: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum + 776, // 917: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 776, // 918: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 777, // 919: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag + 209, // 920: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum + 779, // 921: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 779, // 922: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 780, // 923: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag + 210, // 924: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum + 782, // 925: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 782, // 926: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 783, // 927: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag + 211, // 928: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum + 785, // 929: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 785, // 930: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 786, // 931: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag + 212, // 932: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum + 788, // 933: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 788, // 934: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 789, // 935: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag + 213, // 936: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum + 791, // 937: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 791, // 938: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 792, // 939: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag + 214, // 940: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum + 794, // 941: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 794, // 942: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 795, // 943: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag + 215, // 944: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum + 797, // 945: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 797, // 946: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 798, // 947: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag + 216, // 948: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum + 800, // 949: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter + 800, // 950: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter + 801, // 951: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag + 217, // 952: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum + 803, // 953: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 803, // 954: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 804, // 955: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag + 218, // 956: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum + 806, // 957: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 806, // 958: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 807, // 959: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag + 219, // 960: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + 809, // 961: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 809, // 962: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 810, // 963: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag + 220, // 964: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum + 812, // 965: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 812, // 966: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 813, // 967: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag + 221, // 968: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum + 815, // 969: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter + 815, // 970: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter + 816, // 971: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag + 222, // 972: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum + 818, // 973: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter + 818, // 974: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter + 819, // 975: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag + 223, // 976: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum + 821, // 977: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter + 821, // 978: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter + 822, // 979: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag + 224, // 980: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum + 824, // 981: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter + 824, // 982: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter + 825, // 983: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag + 225, // 984: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum + 827, // 985: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter + 827, // 986: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter + 828, // 987: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag + 226, // 988: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum + 830, // 989: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter + 830, // 990: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter + 831, // 991: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag + 227, // 992: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum + 833, // 993: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter + 833, // 994: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter + 834, // 995: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag + 228, // 996: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum + 836, // 997: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter + 836, // 998: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter + 837, // 999: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag + 229, // 1000: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum + 839, // 1001: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter + 839, // 1002: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter + 840, // 1003: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag + 230, // 1004: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum + 842, // 1005: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter + 842, // 1006: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter + 843, // 1007: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag + 231, // 1008: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum + 845, // 1009: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter + 845, // 1010: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter + 846, // 1011: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag + 232, // 1012: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum + 848, // 1013: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter + 848, // 1014: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter + 849, // 1015: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag + 233, // 1016: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum + 851, // 1017: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter + 851, // 1018: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter + 852, // 1019: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag + 234, // 1020: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum + 854, // 1021: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter + 854, // 1022: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter + 855, // 1023: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag + 235, // 1024: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum + 857, // 1025: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter + 857, // 1026: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter + 858, // 1027: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag + 236, // 1028: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum + 860, // 1029: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter + 860, // 1030: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter + 861, // 1031: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag + 237, // 1032: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum + 863, // 1033: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter + 863, // 1034: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter + 864, // 1035: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag + 238, // 1036: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum + 866, // 1037: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter + 866, // 1038: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter + 867, // 1039: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag + 239, // 1040: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum + 240, // 1041: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum + 241, // 1042: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum + 870, // 1043: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter + 870, // 1044: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter + 871, // 1045: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag + 242, // 1046: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum + 873, // 1047: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter + 873, // 1048: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter + 874, // 1049: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag + 243, // 1050: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum + 876, // 1051: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter + 876, // 1052: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter + 877, // 1053: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag + 244, // 1054: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum + 879, // 1055: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter + 879, // 1056: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter + 880, // 1057: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag + 245, // 1058: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum + 246, // 1059: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum + 247, // 1060: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum + 883, // 1061: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter + 883, // 1062: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter + 884, // 1063: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag + 248, // 1064: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum + 886, // 1065: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter + 886, // 1066: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter + 887, // 1067: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag + 249, // 1068: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum + 889, // 1069: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 889, // 1070: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 890, // 1071: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag + 250, // 1072: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum + 892, // 1073: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter + 892, // 1074: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter + 893, // 1075: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag + 251, // 1076: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum + 895, // 1077: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter + 895, // 1078: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter + 896, // 1079: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag + 252, // 1080: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum + 898, // 1081: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter + 898, // 1082: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter + 899, // 1083: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag + 253, // 1084: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum + 901, // 1085: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 901, // 1086: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 902, // 1087: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag + 254, // 1088: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum + 904, // 1089: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 904, // 1090: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 905, // 1091: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag + 255, // 1092: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum + 907, // 1093: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 907, // 1094: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 908, // 1095: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag + 256, // 1096: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum + 910, // 1097: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter + 910, // 1098: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter + 911, // 1099: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag + 257, // 1100: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + 913, // 1101: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 913, // 1102: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 914, // 1103: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag + 258, // 1104: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum + 916, // 1105: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 916, // 1106: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 917, // 1107: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag + 259, // 1108: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + 919, // 1109: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 919, // 1110: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 920, // 1111: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + 260, // 1112: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + 922, // 1113: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 922, // 1114: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 923, // 1115: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag + 261, // 1116: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum + 925, // 1117: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 925, // 1118: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 926, // 1119: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag + 262, // 1120: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + 928, // 1121: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 928, // 1122: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 929, // 1123: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + 263, // 1124: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum + 931, // 1125: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter + 931, // 1126: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter + 932, // 1127: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag + 264, // 1128: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + 934, // 1129: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 934, // 1130: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 935, // 1131: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag + 265, // 1132: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum + 937, // 1133: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 937, // 1134: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 938, // 1135: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag + 266, // 1136: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum + 940, // 1137: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter + 940, // 1138: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter + 941, // 1139: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag + 267, // 1140: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum + 943, // 1141: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 943, // 1142: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 944, // 1143: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag + 268, // 1144: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum + 946, // 1145: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 946, // 1146: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 947, // 1147: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag + 269, // 1148: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum + 949, // 1149: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter + 949, // 1150: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter + 950, // 1151: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag + 270, // 1152: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + 952, // 1153: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 952, // 1154: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 953, // 1155: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag + 271, // 1156: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum + 955, // 1157: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter + 955, // 1158: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter + 956, // 1159: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag + 272, // 1160: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum + 958, // 1161: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter + 958, // 1162: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter + 959, // 1163: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag + 273, // 1164: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum + 961, // 1165: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter + 961, // 1166: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter + 962, // 1167: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag + 274, // 1168: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum + 964, // 1169: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter + 964, // 1170: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter + 965, // 1171: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag + 275, // 1172: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum + 967, // 1173: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter + 967, // 1174: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter + 968, // 1175: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag + 276, // 1176: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum + 970, // 1177: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter + 970, // 1178: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter + 971, // 1179: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag + 277, // 1180: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + 973, // 1181: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 973, // 1182: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 974, // 1183: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag + 278, // 1184: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + 976, // 1185: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 976, // 1186: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 977, // 1187: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag + 279, // 1188: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + 979, // 1189: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 979, // 1190: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 980, // 1191: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag + 280, // 1192: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + 982, // 1193: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 982, // 1194: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 983, // 1195: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag + 281, // 1196: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum + 985, // 1197: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 985, // 1198: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 986, // 1199: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag + 282, // 1200: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum + 988, // 1201: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 988, // 1202: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 989, // 1203: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag + 283, // 1204: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum + 284, // 1205: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum + 285, // 1206: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + 992, // 1207: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 992, // 1208: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 993, // 1209: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag + 286, // 1210: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + 995, // 1211: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 995, // 1212: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 996, // 1213: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag + 287, // 1214: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum + 288, // 1215: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum + 289, // 1216: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + 999, // 1217: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 999, // 1218: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1000, // 1219: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + 290, // 1220: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + 1002, // 1221: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1002, // 1222: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1003, // 1223: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + 291, // 1224: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum + 1005, // 1225: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1005, // 1226: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1006, // 1227: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag + 292, // 1228: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum + 1008, // 1229: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1008, // 1230: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1009, // 1231: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag + 293, // 1232: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + 1011, // 1233: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1011, // 1234: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1012, // 1235: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag + 294, // 1236: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + 1014, // 1237: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1014, // 1238: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1015, // 1239: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + 295, // 1240: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + 296, // 1241: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + 297, // 1242: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + 298, // 1243: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + 299, // 1244: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum + 1019, // 1245: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter + 1019, // 1246: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter + 1020, // 1247: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag + 300, // 1248: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum + 1022, // 1249: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter + 1022, // 1250: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter + 1023, // 1251: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag + 301, // 1252: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum + 1025, // 1253: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1025, // 1254: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1026, // 1255: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag + 302, // 1256: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum + 1028, // 1257: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1028, // 1258: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1029, // 1259: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag + 303, // 1260: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum + 1031, // 1261: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1031, // 1262: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1032, // 1263: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag + 304, // 1264: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum + 1034, // 1265: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1034, // 1266: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1035, // 1267: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag + 305, // 1268: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum + 306, // 1269: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum + 307, // 1270: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + 1038, // 1271: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1038, // 1272: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1039, // 1273: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag + 308, // 1274: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum + 1041, // 1275: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter + 1041, // 1276: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter + 1042, // 1277: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag + 309, // 1278: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum + 1044, // 1279: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1044, // 1280: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1045, // 1281: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag + 310, // 1282: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum + 1047, // 1283: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1047, // 1284: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1048, // 1285: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag + 311, // 1286: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum + 1050, // 1287: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1050, // 1288: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1051, // 1289: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag + 533, // 1290: otg.Success.warning:type_name -> otg.Warning + 532, // 1291: otg.Failure.error:type_name -> otg.Error + 312, // 1292: otg.SetConfigRequest.config:type_name -> otg.Config + 534, // 1293: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate + 533, // 1294: otg.SetConfigResponse.warning:type_name -> otg.Warning + 312, // 1295: otg.GetConfigResponse.config:type_name -> otg.Config + 533, // 1296: otg.UpdateConfigResponse.warning:type_name -> otg.Warning + 536, // 1297: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState + 533, // 1298: otg.SetControlStateResponse.warning:type_name -> otg.Warning + 547, // 1299: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction + 548, // 1300: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse + 567, // 1301: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest + 568, // 1302: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse + 594, // 1303: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest + 595, // 1304: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse + 636, // 1305: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest + 1053, // 1306: otg.GetVersionResponse.version:type_name -> otg.Version + 1056, // 1307: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest + 1384, // 1308: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty + 1057, // 1309: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest + 1061, // 1310: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest + 1063, // 1311: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest + 1065, // 1312: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest + 1067, // 1313: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest + 1069, // 1314: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest + 1384, // 1315: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty + 1058, // 1316: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse + 1059, // 1317: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse + 1060, // 1318: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse + 1062, // 1319: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse + 1064, // 1320: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse + 1066, // 1321: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse + 1068, // 1322: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse + 1070, // 1323: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse + 1071, // 1324: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse + 1316, // [1316:1325] is the sub-list for method output_type + 1307, // [1307:1316] is the sub-list for method input_type + 1307, // [1307:1307] is the sub-list for extension type_name + 1307, // [1307:1307] is the sub-list for extension extendee + 0, // [0:1307] is the sub-list for field type_name } func init() { file_otg_proto_init() } @@ -108319,8 +110635,224 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Peer); i { + file_otg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4Peer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4Interface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EthernetSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpEthernetSegmentDfElection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteAdvanced); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCommunity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtCommunity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAsPath); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAsPathSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EvpnEvis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EviVxlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCMacIpRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteDistinguisher); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteTarget); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAdvanced); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCapability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpLearnedInformationFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4RouteRange); i { case 0: return &v.state case 1: @@ -108331,8 +110863,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Interface); i { + file_otg_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAddPath); i { case 0: return &v.state case 1: @@ -108343,8 +110875,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EthernetSegment); i { + file_otg_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunity); i { case 0: return &v.state case 1: @@ -108355,8 +110887,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpEthernetSegmentDfElection); i { + file_otg_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108367,8 +110899,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteAdvanced); i { + file_otg_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108379,8 +110911,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCommunity); i { + file_otg_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType); i { case 0: return &v.state case 1: @@ -108391,8 +110923,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtCommunity); i { + file_otg_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108403,8 +110935,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPath); i { + file_otg_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108415,8 +110947,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPathSegment); i { + file_otg_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType); i { case 0: return &v.state case 1: @@ -108427,8 +110959,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EvpnEvis); i { + file_otg_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108439,8 +110971,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlan); i { + file_otg_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108451,8 +110983,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { + file_otg_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType); i { case 0: return &v.state case 1: @@ -108463,8 +110995,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCMacIpRange); i { + file_otg_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeColor); i { case 0: return &v.state case 1: @@ -108475,8 +111007,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteDistinguisher); i { + file_otg_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation); i { case 0: return &v.state case 1: @@ -108487,8 +111019,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteTarget); i { + file_otg_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType); i { case 0: return &v.state case 1: @@ -108499,8 +111031,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAdvanced); i { + file_otg_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnTypeRouterMac); i { case 0: return &v.state case 1: @@ -108511,8 +111043,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCapability); i { + file_otg_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnType); i { case 0: return &v.state case 1: @@ -108523,8 +111055,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpLearnedInformationFilter); i { + file_otg_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth); i { case 0: return &v.state case 1: @@ -108535,8 +111067,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4RouteRange); i { + file_otg_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType); i { case 0: return &v.state case 1: @@ -108547,8 +111079,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAddPath); i { + file_otg_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityCustomType); i { case 0: return &v.state case 1: @@ -108559,7 +111091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange); i { case 0: return &v.state @@ -108571,7 +111103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy); i { case 0: return &v.state @@ -108583,7 +111115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4TunnelTlv); i { case 0: return &v.state @@ -108595,7 +111127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv); i { case 0: return &v.state @@ -108607,7 +111139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteColorSubTlv); i { case 0: return &v.state @@ -108619,7 +111151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv); i { case 0: return &v.state @@ -108631,7 +111163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePreferenceSubTlv); i { case 0: return &v.state @@ -108643,7 +111175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePolicyPrioritySubTlv); i { case 0: return &v.state @@ -108655,7 +111187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePolicyNameSubTlv); i { case 0: return &v.state @@ -108667,7 +111199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv); i { case 0: return &v.state @@ -108679,7 +111211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentList); i { case 0: return &v.state @@ -108691,7 +111223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment); i { case 0: return &v.state @@ -108703,7 +111235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSrMplsSid); i { case 0: return &v.state @@ -108715,7 +111247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSRv6SIDEndpointBehaviorAndStructure); i { case 0: return &v.state @@ -108727,7 +111259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentATypeSubTlv); i { case 0: return &v.state @@ -108739,7 +111271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentBTypeSubTlv); i { case 0: return &v.state @@ -108751,7 +111283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentCTypeSubTlv); i { case 0: return &v.state @@ -108763,7 +111295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentDTypeSubTlv); i { case 0: return &v.state @@ -108775,7 +111307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentETypeSubTlv); i { case 0: return &v.state @@ -108787,7 +111319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentFTypeSubTlv); i { case 0: return &v.state @@ -108799,7 +111331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentGTypeSubTlv); i { case 0: return &v.state @@ -108811,7 +111343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentHTypeSubTlv); i { case 0: return &v.state @@ -108823,7 +111355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentITypeSubTlv); i { case 0: return &v.state @@ -108835,7 +111367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentJTypeSubTlv); i { case 0: return &v.state @@ -108847,7 +111379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentKTypeSubTlv); i { case 0: return &v.state @@ -108859,7 +111391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy); i { case 0: return &v.state @@ -108871,7 +111403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6TunnelTlv); i { case 0: return &v.state @@ -108883,7 +111415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpGracefulRestart); i { case 0: return &v.state @@ -108895,7 +111427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer); i { case 0: return &v.state @@ -108907,7 +111439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Interface); i { case 0: return &v.state @@ -108919,7 +111451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6SegmentRouting); i { case 0: return &v.state @@ -108931,7 +111463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment); i { case 0: return &v.state @@ -108943,7 +111475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis); i { case 0: return &v.state @@ -108955,7 +111487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan); i { case 0: return &v.state @@ -108967,7 +111499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlanBroadcastDomain); i { case 0: return &v.state @@ -108979,7 +111511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVxlan); i { case 0: return &v.state @@ -108991,7 +111523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4Tunnel); i { case 0: return &v.state @@ -109003,7 +111535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6Tunnel); i { case 0: return &v.state @@ -109015,7 +111547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode); i { case 0: return &v.state @@ -109027,7 +111559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode); i { case 0: return &v.state @@ -109039,7 +111571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -109051,7 +111583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -109063,7 +111595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache); i { case 0: return &v.state @@ -109075,7 +111607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -109087,7 +111619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -109099,7 +111631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -109111,7 +111643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -109123,7 +111655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceRsvp); i { case 0: return &v.state @@ -109135,7 +111667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIpv4Interface); i { case 0: return &v.state @@ -109147,7 +111679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Interface); i { case 0: return &v.state @@ -109159,7 +111691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp); i { case 0: return &v.state @@ -109171,7 +111703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp); i { case 0: return &v.state @@ -109183,7 +111715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpSessionAttribute); i { case 0: return &v.state @@ -109195,7 +111727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpResourceAffinities); i { case 0: return &v.state @@ -109207,7 +111739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpTspec); i { case 0: return &v.state @@ -109219,7 +111751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpFastReroute); i { case 0: return &v.state @@ -109231,7 +111763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro); i { case 0: return &v.state @@ -109243,7 +111775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject); i { case 0: return &v.state @@ -109255,7 +111787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Flow); i { case 0: return &v.state @@ -109267,7 +111799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx); i { case 0: return &v.state @@ -109279,7 +111811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPort); i { case 0: return &v.state @@ -109291,7 +111823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter); i { case 0: return &v.state @@ -109303,7 +111835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader); i { case 0: return &v.state @@ -109315,7 +111847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustom); i { case 0: return &v.state @@ -109327,7 +111859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustomMetricTag); i { case 0: return &v.state @@ -109339,7 +111871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernet); i { case 0: return &v.state @@ -109351,7 +111883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVlan); i { case 0: return &v.state @@ -109363,7 +111895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVxlan); i { case 0: return &v.state @@ -109375,7 +111907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4); i { case 0: return &v.state @@ -109387,7 +111919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority); i { case 0: return &v.state @@ -109399,7 +111931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Dscp); i { case 0: return &v.state @@ -109411,7 +111943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Tos); i { case 0: return &v.state @@ -109423,7 +111955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv6); i { case 0: return &v.state @@ -109435,7 +111967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPfcPause); i { case 0: return &v.state @@ -109447,7 +111979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernetPause); i { case 0: return &v.state @@ -109459,7 +111991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTcp); i { case 0: return &v.state @@ -109471,7 +112003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowUdp); i { case 0: return &v.state @@ -109483,7 +112015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGre); i { case 0: return &v.state @@ -109495,7 +112027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv1); i { case 0: return &v.state @@ -109507,7 +112039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpExtension); i { case 0: return &v.state @@ -109519,7 +112051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv2); i { case 0: return &v.state @@ -109531,7 +112063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowArp); i { case 0: return &v.state @@ -109543,7 +112075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp); i { case 0: return &v.state @@ -109555,7 +112087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpEcho); i { case 0: return &v.state @@ -109567,7 +112099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6); i { case 0: return &v.state @@ -109579,7 +112111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6Echo); i { case 0: return &v.state @@ -109591,7 +112123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPpp); i { case 0: return &v.state @@ -109603,7 +112135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIgmpv1); i { case 0: return &v.state @@ -109615,7 +112147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMpls); i { case 0: return &v.state @@ -109627,7 +112159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize); i { case 0: return &v.state @@ -109639,7 +112171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeIncrement); i { case 0: return &v.state @@ -109651,7 +112183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeRandom); i { case 0: return &v.state @@ -109663,7 +112195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs); i { case 0: return &v.state @@ -109675,7 +112207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairsCustom); i { case 0: return &v.state @@ -109687,7 +112219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate); i { case 0: return &v.state @@ -109699,7 +112231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration); i { case 0: return &v.state @@ -109711,7 +112243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowContinuous); i { case 0: return &v.state @@ -109723,7 +112255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay); i { case 0: return &v.state @@ -109735,7 +112267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedPackets); i { case 0: return &v.state @@ -109747,7 +112279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedSeconds); i { case 0: return &v.state @@ -109759,7 +112291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowBurst); i { case 0: return &v.state @@ -109771,7 +112303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap); i { case 0: return &v.state @@ -109783,7 +112315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetrics); i { case 0: return &v.state @@ -109795,7 +112327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics); i { case 0: return &v.state @@ -109807,7 +112339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPredefinedTags); i { case 0: return &v.state @@ -109819,7 +112351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio); i { case 0: return &v.state @@ -109831,7 +112363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatioRxCount); i { case 0: return &v.state @@ -109843,7 +112375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -109855,7 +112387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRxRateThreshold); i { case 0: return &v.state @@ -109867,7 +112399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventLink); i { case 0: return &v.state @@ -109879,7 +112411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRouteAdvertiseWithdraw); i { case 0: return &v.state @@ -109891,7 +112423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest); i { case 0: return &v.state @@ -109903,7 +112435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventSubscription); i { case 0: return &v.state @@ -109915,7 +112447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lldp); i { case 0: return &v.state @@ -109927,7 +112459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection); i { case 0: return &v.state @@ -109939,7 +112471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId); i { case 0: return &v.state @@ -109951,7 +112483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId); i { case 0: return &v.state @@ -109963,7 +112495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType); i { case 0: return &v.state @@ -109975,7 +112507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType); i { case 0: return &v.state @@ -109987,7 +112519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName); i { case 0: return &v.state @@ -109999,7 +112531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error); i { case 0: return &v.state @@ -110011,7 +112543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Warning); i { case 0: return &v.state @@ -110023,7 +112555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate); i { case 0: return &v.state @@ -110035,7 +112567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate); i { case 0: return &v.state @@ -110047,7 +112579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState); i { case 0: return &v.state @@ -110059,7 +112591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort); i { case 0: return &v.state @@ -110071,7 +112603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic); i { case 0: return &v.state @@ -110083,7 +112615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol); i { case 0: return &v.state @@ -110095,7 +112627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink); i { case 0: return &v.state @@ -110107,7 +112639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture); i { case 0: return &v.state @@ -110119,7 +112651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit); i { case 0: return &v.state @@ -110131,7 +112663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll); i { case 0: return &v.state @@ -110143,7 +112675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute); i { case 0: return &v.state @@ -110155,7 +112687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp); i { case 0: return &v.state @@ -110167,7 +112699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin); i { case 0: return &v.state @@ -110179,7 +112711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction); i { case 0: return &v.state @@ -110191,7 +112723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlActionResponse); i { case 0: return &v.state @@ -110203,7 +112735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse); i { case 0: return &v.state @@ -110215,7 +112747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol); i { case 0: return &v.state @@ -110227,7 +112759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol); i { case 0: return &v.state @@ -110239,7 +112771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4); i { case 0: return &v.state @@ -110251,7 +112783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4); i { case 0: return &v.state @@ -110263,7 +112795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4Ping); i { case 0: return &v.state @@ -110275,7 +112807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4PingRequest); i { case 0: return &v.state @@ -110287,7 +112819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4Ping); i { case 0: return &v.state @@ -110299,7 +112831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse); i { case 0: return &v.state @@ -110311,7 +112843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6); i { case 0: return &v.state @@ -110323,7 +112855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6); i { case 0: return &v.state @@ -110335,7 +112867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6Ping); i { case 0: return &v.state @@ -110347,7 +112879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6PingRequest); i { case 0: return &v.state @@ -110359,7 +112891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6Ping); i { case 0: return &v.state @@ -110371,7 +112903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse); i { case 0: return &v.state @@ -110383,7 +112915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp); i { case 0: return &v.state @@ -110395,7 +112927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification); i { case 0: return &v.state @@ -110407,7 +112939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpInitiateGracefulRestart); i { case 0: return &v.state @@ -110419,7 +112951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest); i { case 0: return &v.state @@ -110431,7 +112963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse); i { case 0: return &v.state @@ -110443,7 +112975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest); i { case 0: return &v.state @@ -110455,7 +112987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric); i { case 0: return &v.state @@ -110467,7 +112999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest); i { case 0: return &v.state @@ -110479,7 +113011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter); i { case 0: return &v.state @@ -110491,7 +113023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagFilter); i { case 0: return &v.state @@ -110503,7 +113035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric); i { case 0: return &v.state @@ -110515,7 +113047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetric); i { case 0: return &v.state @@ -110527,7 +113059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTag); i { case 0: return &v.state @@ -110539,7 +113071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue); i { case 0: return &v.state @@ -110551,7 +113083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricTimestamp); i { case 0: return &v.state @@ -110563,7 +113095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricLatency); i { case 0: return &v.state @@ -110575,7 +113107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest); i { case 0: return &v.state @@ -110587,7 +113119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric); i { case 0: return &v.state @@ -110599,7 +113131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest); i { case 0: return &v.state @@ -110611,7 +113143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric); i { case 0: return &v.state @@ -110623,7 +113155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest); i { case 0: return &v.state @@ -110635,7 +113167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetric); i { case 0: return &v.state @@ -110647,7 +113179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest); i { case 0: return &v.state @@ -110659,7 +113191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric); i { case 0: return &v.state @@ -110671,7 +113203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest); i { case 0: return &v.state @@ -110683,7 +113215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric); i { case 0: return &v.state @@ -110695,7 +113227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest); i { case 0: return &v.state @@ -110707,7 +113239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetric); i { case 0: return &v.state @@ -110719,7 +113251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest); i { case 0: return &v.state @@ -110731,7 +113263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetric); i { case 0: return &v.state @@ -110743,7 +113275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest); i { case 0: return &v.state @@ -110755,7 +113287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse); i { case 0: return &v.state @@ -110767,7 +113299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4StatesRequest); i { case 0: return &v.state @@ -110779,7 +113311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4State); i { case 0: return &v.state @@ -110791,7 +113323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6StatesRequest); i { case 0: return &v.state @@ -110803,7 +113335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6State); i { case 0: return &v.state @@ -110815,7 +113347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest); i { case 0: return &v.state @@ -110827,7 +113359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter); i { case 0: return &v.state @@ -110839,7 +113371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter); i { case 0: return &v.state @@ -110851,7 +113383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixesState); i { case 0: return &v.state @@ -110863,7 +113395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState); i { case 0: return &v.state @@ -110875,7 +113407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState); i { case 0: return &v.state @@ -110887,7 +113419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity); i { case 0: return &v.state @@ -110899,7 +113431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPath); i { case 0: return &v.state @@ -110911,7 +113443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment); i { case 0: return &v.state @@ -110923,7 +113455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsStateRequest); i { case 0: return &v.state @@ -110935,7 +113467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsState); i { case 0: return &v.state @@ -110947,7 +113479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState); i { case 0: return &v.state @@ -110959,7 +113491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspTlvs); i { case 0: return &v.state @@ -110971,7 +113503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspHostname); i { case 0: return &v.state @@ -110983,7 +113515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspFlags); i { case 0: return &v.state @@ -110995,7 +113527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIsReachabilityTlv); i { case 0: return &v.state @@ -111007,7 +113539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIsReachabilityTlv); i { case 0: return &v.state @@ -111019,7 +113551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspneighbor); i { case 0: return &v.state @@ -111031,7 +113563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4InternalReachabilityTlv); i { case 0: return &v.state @@ -111043,7 +113575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4ExternalReachabilityTlv); i { case 0: return &v.state @@ -111055,7 +113587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix); i { case 0: return &v.state @@ -111067,7 +113599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIpv4ReachabilityTlv); i { case 0: return &v.state @@ -111079,7 +113611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix); i { case 0: return &v.state @@ -111091,7 +113623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv6ReachabilityTlv); i { case 0: return &v.state @@ -111103,7 +113635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix); i { case 0: return &v.state @@ -111115,7 +113647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspPrefixAttributes); i { case 0: return &v.state @@ -111127,7 +113659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsStateRequest); i { case 0: return &v.state @@ -111139,7 +113671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState); i { case 0: return &v.state @@ -111151,7 +113683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCustomTLVState); i { case 0: return &v.state @@ -111163,7 +113695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState); i { case 0: return &v.state @@ -111175,7 +113707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsStateRequest); i { case 0: return &v.state @@ -111187,7 +113719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsState); i { case 0: return &v.state @@ -111199,7 +113731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIPv4LspState); i { case 0: return &v.state @@ -111211,7 +113743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState); i { case 0: return &v.state @@ -111223,7 +113755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Rro); i { case 0: return &v.state @@ -111235,7 +113767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero); i { case 0: return &v.state @@ -111247,7 +113779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureRequest); i { case 0: return &v.state @@ -111259,7 +113791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstCounter); i { case 0: return &v.state @@ -111271,7 +113803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstMetricTag); i { case 0: return &v.state @@ -111283,7 +113815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst); i { case 0: return &v.state @@ -111295,7 +113827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcCounter); i { case 0: return &v.state @@ -111307,7 +113839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcMetricTag); i { case 0: return &v.state @@ -111319,7 +113851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc); i { case 0: return &v.state @@ -111331,7 +113863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeCounter); i { case 0: return &v.state @@ -111343,7 +113875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeMetricTag); i { case 0: return &v.state @@ -111355,7 +113887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType); i { case 0: return &v.state @@ -111367,7 +113899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueCounter); i { case 0: return &v.state @@ -111379,7 +113911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueMetricTag); i { case 0: return &v.state @@ -111391,7 +113923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue); i { case 0: return &v.state @@ -111403,7 +113935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityCounter); i { case 0: return &v.state @@ -111415,7 +113947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityMetricTag); i { case 0: return &v.state @@ -111427,7 +113959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority); i { case 0: return &v.state @@ -111439,7 +113971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiCounter); i { case 0: return &v.state @@ -111451,7 +113983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiMetricTag); i { case 0: return &v.state @@ -111463,7 +113995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi); i { case 0: return &v.state @@ -111475,7 +114007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdCounter); i { case 0: return &v.state @@ -111487,7 +114019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdMetricTag); i { case 0: return &v.state @@ -111499,7 +114031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId); i { case 0: return &v.state @@ -111511,7 +114043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidCounter); i { case 0: return &v.state @@ -111523,7 +114055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidMetricTag); i { case 0: return &v.state @@ -111535,7 +114067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid); i { case 0: return &v.state @@ -111547,7 +114079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsCounter); i { case 0: return &v.state @@ -111559,7 +114091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsMetricTag); i { case 0: return &v.state @@ -111571,7 +114103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags); i { case 0: return &v.state @@ -111583,7 +114115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0Counter); i { case 0: return &v.state @@ -111595,7 +114127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0MetricTag); i { case 0: return &v.state @@ -111607,7 +114139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0); i { case 0: return &v.state @@ -111619,7 +114151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniCounter); i { case 0: return &v.state @@ -111631,7 +114163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniMetricTag); i { case 0: return &v.state @@ -111643,7 +114175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni); i { case 0: return &v.state @@ -111655,7 +114187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1Counter); i { case 0: return &v.state @@ -111667,7 +114199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1MetricTag); i { case 0: return &v.state @@ -111679,7 +114211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1); i { case 0: return &v.state @@ -111691,7 +114223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionCounter); i { case 0: return &v.state @@ -111703,7 +114235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionMetricTag); i { case 0: return &v.state @@ -111715,7 +114247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version); i { case 0: return &v.state @@ -111727,7 +114259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthCounter); i { case 0: return &v.state @@ -111739,7 +114271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthMetricTag); i { case 0: return &v.state @@ -111751,7 +114283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength); i { case 0: return &v.state @@ -111763,7 +114295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthCounter); i { case 0: return &v.state @@ -111775,7 +114307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthMetricTag); i { case 0: return &v.state @@ -111787,7 +114319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength); i { case 0: return &v.state @@ -111799,7 +114331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationCounter); i { case 0: return &v.state @@ -111811,7 +114343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationMetricTag); i { case 0: return &v.state @@ -111823,7 +114355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification); i { case 0: return &v.state @@ -111835,7 +114367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedCounter); i { case 0: return &v.state @@ -111847,7 +114379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedMetricTag); i { case 0: return &v.state @@ -111859,7 +114391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved); i { case 0: return &v.state @@ -111871,7 +114403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentCounter); i { case 0: return &v.state @@ -111883,7 +114415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentMetricTag); i { case 0: return &v.state @@ -111895,7 +114427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment); i { case 0: return &v.state @@ -111907,7 +114439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsCounter); i { case 0: return &v.state @@ -111919,7 +114451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsMetricTag); i { case 0: return &v.state @@ -111931,7 +114463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments); i { case 0: return &v.state @@ -111943,7 +114475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetCounter); i { case 0: return &v.state @@ -111955,7 +114487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetMetricTag); i { case 0: return &v.state @@ -111967,7 +114499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset); i { case 0: return &v.state @@ -111979,7 +114511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveCounter); i { case 0: return &v.state @@ -111991,7 +114523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveMetricTag); i { case 0: return &v.state @@ -112003,7 +114535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive); i { case 0: return &v.state @@ -112015,7 +114547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolCounter); i { case 0: return &v.state @@ -112027,7 +114559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolMetricTag); i { case 0: return &v.state @@ -112039,7 +114571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol); i { case 0: return &v.state @@ -112051,7 +114583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum); i { case 0: return &v.state @@ -112063,7 +114595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcCounter); i { case 0: return &v.state @@ -112075,7 +114607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcMetricTag); i { case 0: return &v.state @@ -112087,7 +114619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src); i { case 0: return &v.state @@ -112099,7 +114631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstCounter); i { case 0: return &v.state @@ -112111,7 +114643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstMetricTag); i { case 0: return &v.state @@ -112123,7 +114655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst); i { case 0: return &v.state @@ -112135,7 +114667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawCounter); i { case 0: return &v.state @@ -112147,7 +114679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawMetricTag); i { case 0: return &v.state @@ -112159,7 +114691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw); i { case 0: return &v.state @@ -112171,7 +114703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbCounter); i { case 0: return &v.state @@ -112183,7 +114715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbMetricTag); i { case 0: return &v.state @@ -112195,7 +114727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb); i { case 0: return &v.state @@ -112207,7 +114739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnCounter); i { case 0: return &v.state @@ -112219,7 +114751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnMetricTag); i { case 0: return &v.state @@ -112231,7 +114763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn); i { case 0: return &v.state @@ -112243,7 +114775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceCounter); i { case 0: return &v.state @@ -112255,7 +114787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceMetricTag); i { case 0: return &v.state @@ -112267,7 +114799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence); i { case 0: return &v.state @@ -112279,7 +114811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayCounter); i { case 0: return &v.state @@ -112291,7 +114823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayMetricTag); i { case 0: return &v.state @@ -112303,7 +114835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay); i { case 0: return &v.state @@ -112315,7 +114847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputCounter); i { case 0: return &v.state @@ -112327,7 +114859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputMetricTag); i { case 0: return &v.state @@ -112339,7 +114871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput); i { case 0: return &v.state @@ -112351,7 +114883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityCounter); i { case 0: return &v.state @@ -112363,7 +114895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityMetricTag); i { case 0: return &v.state @@ -112375,7 +114907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability); i { case 0: return &v.state @@ -112387,7 +114919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryCounter); i { case 0: return &v.state @@ -112399,7 +114931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryMetricTag); i { case 0: return &v.state @@ -112411,7 +114943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary); i { case 0: return &v.state @@ -112423,7 +114955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedCounter); i { case 0: return &v.state @@ -112435,7 +114967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedMetricTag); i { case 0: return &v.state @@ -112447,7 +114979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused); i { case 0: return &v.state @@ -112459,7 +114991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionCounter); i { case 0: return &v.state @@ -112471,7 +115003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionMetricTag); i { case 0: return &v.state @@ -112483,7 +115015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version); i { case 0: return &v.state @@ -112495,7 +115027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassCounter); i { case 0: return &v.state @@ -112507,7 +115039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassMetricTag); i { case 0: return &v.state @@ -112519,7 +115051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass); i { case 0: return &v.state @@ -112531,7 +115063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelCounter); i { case 0: return &v.state @@ -112543,7 +115075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelMetricTag); i { case 0: return &v.state @@ -112555,7 +115087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel); i { case 0: return &v.state @@ -112567,7 +115099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthCounter); i { case 0: return &v.state @@ -112579,7 +115111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthMetricTag); i { case 0: return &v.state @@ -112591,7 +115123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength); i { case 0: return &v.state @@ -112603,7 +115135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderCounter); i { case 0: return &v.state @@ -112615,7 +115147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderMetricTag); i { case 0: return &v.state @@ -112627,7 +115159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader); i { case 0: return &v.state @@ -112639,7 +115171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitCounter); i { case 0: return &v.state @@ -112651,7 +115183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitMetricTag); i { case 0: return &v.state @@ -112663,7 +115195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit); i { case 0: return &v.state @@ -112675,7 +115207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcCounter); i { case 0: return &v.state @@ -112687,7 +115219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcMetricTag); i { case 0: return &v.state @@ -112699,7 +115231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src); i { case 0: return &v.state @@ -112711,7 +115243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstCounter); i { case 0: return &v.state @@ -112723,7 +115255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstMetricTag); i { case 0: return &v.state @@ -112735,7 +115267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst); i { case 0: return &v.state @@ -112747,7 +115279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstCounter); i { case 0: return &v.state @@ -112759,7 +115291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstMetricTag); i { case 0: return &v.state @@ -112771,7 +115303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst); i { case 0: return &v.state @@ -112783,7 +115315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcCounter); i { case 0: return &v.state @@ -112795,7 +115327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcMetricTag); i { case 0: return &v.state @@ -112807,7 +115339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc); i { case 0: return &v.state @@ -112819,7 +115351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeCounter); i { case 0: return &v.state @@ -112831,7 +115363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -112843,7 +115375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType); i { case 0: return &v.state @@ -112855,7 +115387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeCounter); i { case 0: return &v.state @@ -112867,7 +115399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -112879,7 +115411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode); i { case 0: return &v.state @@ -112891,7 +115423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorCounter); i { case 0: return &v.state @@ -112903,7 +115435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorMetricTag); i { case 0: return &v.state @@ -112915,7 +115447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector); i { case 0: return &v.state @@ -112927,7 +115459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0Counter); i { case 0: return &v.state @@ -112939,7 +115471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0MetricTag); i { case 0: return &v.state @@ -112951,7 +115483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0); i { case 0: return &v.state @@ -112963,7 +115495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1Counter); i { case 0: return &v.state @@ -112975,7 +115507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1MetricTag); i { case 0: return &v.state @@ -112987,7 +115519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1); i { case 0: return &v.state @@ -112999,7 +115531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2Counter); i { case 0: return &v.state @@ -113011,7 +115543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2MetricTag); i { case 0: return &v.state @@ -113023,7 +115555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2); i { case 0: return &v.state @@ -113035,7 +115567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3Counter); i { case 0: return &v.state @@ -113047,7 +115579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3MetricTag); i { case 0: return &v.state @@ -113059,7 +115591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3); i { case 0: return &v.state @@ -113071,7 +115603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4Counter); i { case 0: return &v.state @@ -113083,7 +115615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4MetricTag); i { case 0: return &v.state @@ -113095,7 +115627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4); i { case 0: return &v.state @@ -113107,7 +115639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5Counter); i { case 0: return &v.state @@ -113119,7 +115651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5MetricTag); i { case 0: return &v.state @@ -113131,7 +115663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5); i { case 0: return &v.state @@ -113143,7 +115675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6Counter); i { case 0: return &v.state @@ -113155,7 +115687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6MetricTag); i { case 0: return &v.state @@ -113167,7 +115699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6); i { case 0: return &v.state @@ -113179,7 +115711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7Counter); i { case 0: return &v.state @@ -113191,7 +115723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7MetricTag); i { case 0: return &v.state @@ -113203,7 +115735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7); i { case 0: return &v.state @@ -113215,7 +115747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstCounter); i { case 0: return &v.state @@ -113227,7 +115759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstMetricTag); i { case 0: return &v.state @@ -113239,7 +115771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst); i { case 0: return &v.state @@ -113251,7 +115783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcCounter); i { case 0: return &v.state @@ -113263,7 +115795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcMetricTag); i { case 0: return &v.state @@ -113275,7 +115807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc); i { case 0: return &v.state @@ -113287,7 +115819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeCounter); i { case 0: return &v.state @@ -113299,7 +115831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -113311,7 +115843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType); i { case 0: return &v.state @@ -113323,7 +115855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeCounter); i { case 0: return &v.state @@ -113335,7 +115867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -113347,7 +115879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode); i { case 0: return &v.state @@ -113359,7 +115891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeCounter); i { case 0: return &v.state @@ -113371,7 +115903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeMetricTag); i { case 0: return &v.state @@ -113383,7 +115915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime); i { case 0: return &v.state @@ -113395,7 +115927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortCounter); i { case 0: return &v.state @@ -113407,7 +115939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortMetricTag); i { case 0: return &v.state @@ -113419,7 +115951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort); i { case 0: return &v.state @@ -113431,7 +115963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortCounter); i { case 0: return &v.state @@ -113443,7 +115975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortMetricTag); i { case 0: return &v.state @@ -113455,7 +115987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort); i { case 0: return &v.state @@ -113467,7 +115999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumCounter); i { case 0: return &v.state @@ -113479,7 +116011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumMetricTag); i { case 0: return &v.state @@ -113491,7 +116023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum); i { case 0: return &v.state @@ -113503,7 +116035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumCounter); i { case 0: return &v.state @@ -113515,7 +116047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumMetricTag); i { case 0: return &v.state @@ -113527,7 +116059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum); i { case 0: return &v.state @@ -113539,7 +116071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetCounter); i { case 0: return &v.state @@ -113551,7 +116083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetMetricTag); i { case 0: return &v.state @@ -113563,7 +116095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset); i { case 0: return &v.state @@ -113575,7 +116107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsCounter); i { case 0: return &v.state @@ -113587,7 +116119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsMetricTag); i { case 0: return &v.state @@ -113599,7 +116131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs); i { case 0: return &v.state @@ -113611,7 +116143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrCounter); i { case 0: return &v.state @@ -113623,7 +116155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrMetricTag); i { case 0: return &v.state @@ -113635,7 +116167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr); i { case 0: return &v.state @@ -113647,7 +116179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoCounter); i { case 0: return &v.state @@ -113659,7 +116191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoMetricTag); i { case 0: return &v.state @@ -113671,7 +116203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho); i { case 0: return &v.state @@ -113683,7 +116215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgCounter); i { case 0: return &v.state @@ -113695,7 +116227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgMetricTag); i { case 0: return &v.state @@ -113707,7 +116239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg); i { case 0: return &v.state @@ -113719,7 +116251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckCounter); i { case 0: return &v.state @@ -113731,7 +116263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckMetricTag); i { case 0: return &v.state @@ -113743,7 +116275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck); i { case 0: return &v.state @@ -113755,7 +116287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshCounter); i { case 0: return &v.state @@ -113767,7 +116299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshMetricTag); i { case 0: return &v.state @@ -113779,7 +116311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh); i { case 0: return &v.state @@ -113791,7 +116323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstCounter); i { case 0: return &v.state @@ -113803,7 +116335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstMetricTag); i { case 0: return &v.state @@ -113815,7 +116347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst); i { case 0: return &v.state @@ -113827,7 +116359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynCounter); i { case 0: return &v.state @@ -113839,7 +116371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynMetricTag); i { case 0: return &v.state @@ -113851,7 +116383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn); i { case 0: return &v.state @@ -113863,7 +116395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinCounter); i { case 0: return &v.state @@ -113875,7 +116407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinMetricTag); i { case 0: return &v.state @@ -113887,7 +116419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin); i { case 0: return &v.state @@ -113899,7 +116431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowCounter); i { case 0: return &v.state @@ -113911,7 +116443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowMetricTag); i { case 0: return &v.state @@ -113923,7 +116455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow); i { case 0: return &v.state @@ -113935,7 +116467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortCounter); i { case 0: return &v.state @@ -113947,7 +116479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortMetricTag); i { case 0: return &v.state @@ -113959,7 +116491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort); i { case 0: return &v.state @@ -113971,7 +116503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortCounter); i { case 0: return &v.state @@ -113983,7 +116515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortMetricTag); i { case 0: return &v.state @@ -113995,7 +116527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort); i { case 0: return &v.state @@ -114007,7 +116539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthCounter); i { case 0: return &v.state @@ -114019,7 +116551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthMetricTag); i { case 0: return &v.state @@ -114031,7 +116563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength); i { case 0: return &v.state @@ -114043,7 +116575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum); i { case 0: return &v.state @@ -114055,7 +116587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentCounter); i { case 0: return &v.state @@ -114067,7 +116599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentMetricTag); i { case 0: return &v.state @@ -114079,7 +116611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent); i { case 0: return &v.state @@ -114091,7 +116623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0Counter); i { case 0: return &v.state @@ -114103,7 +116635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0MetricTag); i { case 0: return &v.state @@ -114115,7 +116647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0); i { case 0: return &v.state @@ -114127,7 +116659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionCounter); i { case 0: return &v.state @@ -114139,7 +116671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionMetricTag); i { case 0: return &v.state @@ -114151,7 +116683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion); i { case 0: return &v.state @@ -114163,7 +116695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolCounter); i { case 0: return &v.state @@ -114175,7 +116707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolMetricTag); i { case 0: return &v.state @@ -114187,7 +116719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol); i { case 0: return &v.state @@ -114199,7 +116731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum); i { case 0: return &v.state @@ -114211,7 +116743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1Counter); i { case 0: return &v.state @@ -114223,7 +116755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1MetricTag); i { case 0: return &v.state @@ -114235,7 +116767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1); i { case 0: return &v.state @@ -114247,7 +116779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionCounter); i { case 0: return &v.state @@ -114259,7 +116791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionMetricTag); i { case 0: return &v.state @@ -114271,7 +116803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version); i { case 0: return &v.state @@ -114283,7 +116815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeCounter); i { case 0: return &v.state @@ -114295,7 +116827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeMetricTag); i { case 0: return &v.state @@ -114307,7 +116839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType); i { case 0: return &v.state @@ -114319,7 +116851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedCounter); i { case 0: return &v.state @@ -114331,7 +116863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedMetricTag); i { case 0: return &v.state @@ -114343,7 +116875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved); i { case 0: return &v.state @@ -114355,7 +116887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagCounter); i { case 0: return &v.state @@ -114367,7 +116899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagMetricTag); i { case 0: return &v.state @@ -114379,7 +116911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag); i { case 0: return &v.state @@ -114391,7 +116923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagCounter); i { case 0: return &v.state @@ -114403,7 +116935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagMetricTag); i { case 0: return &v.state @@ -114415,7 +116947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag); i { case 0: return &v.state @@ -114427,7 +116959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagCounter); i { case 0: return &v.state @@ -114439,7 +116971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagMetricTag); i { case 0: return &v.state @@ -114451,7 +116983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag); i { case 0: return &v.state @@ -114463,7 +116995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeCounter); i { case 0: return &v.state @@ -114475,7 +117007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeMetricTag); i { case 0: return &v.state @@ -114487,7 +117019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType); i { case 0: return &v.state @@ -114499,7 +117031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthCounter); i { case 0: return &v.state @@ -114511,7 +117043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthMetricTag); i { case 0: return &v.state @@ -114523,7 +117055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength); i { case 0: return &v.state @@ -114535,7 +117067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidCounter); i { case 0: return &v.state @@ -114547,7 +117079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidMetricTag); i { case 0: return &v.state @@ -114559,7 +117091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid); i { case 0: return &v.state @@ -114571,7 +117103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberCounter); i { case 0: return &v.state @@ -114583,7 +117115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberMetricTag); i { case 0: return &v.state @@ -114595,7 +117127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber); i { case 0: return &v.state @@ -114607,7 +117139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberCounter); i { case 0: return &v.state @@ -114619,7 +117151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberMetricTag); i { case 0: return &v.state @@ -114631,7 +117163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber); i { case 0: return &v.state @@ -114643,7 +117175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeCounter); i { case 0: return &v.state @@ -114655,7 +117187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag); i { case 0: return &v.state @@ -114667,7 +117199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType); i { case 0: return &v.state @@ -114679,7 +117211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthCounter); i { case 0: return &v.state @@ -114691,7 +117223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthMetricTag); i { case 0: return &v.state @@ -114703,7 +117235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength); i { case 0: return &v.state @@ -114715,7 +117247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsCounter); i { case 0: return &v.state @@ -114727,7 +117259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsMetricTag); i { case 0: return &v.state @@ -114739,7 +117271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents); i { case 0: return &v.state @@ -114751,7 +117283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderCounter); i { case 0: return &v.state @@ -114763,7 +117295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderMetricTag); i { case 0: return &v.state @@ -114775,7 +117307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader); i { case 0: return &v.state @@ -114787,7 +117319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionCounter); i { case 0: return &v.state @@ -114799,7 +117331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionMetricTag); i { case 0: return &v.state @@ -114811,7 +117343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version); i { case 0: return &v.state @@ -114823,7 +117355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagCounter); i { case 0: return &v.state @@ -114835,7 +117367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagMetricTag); i { case 0: return &v.state @@ -114847,7 +117379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag); i { case 0: return &v.state @@ -114859,7 +117391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagCounter); i { case 0: return &v.state @@ -114871,7 +117403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagMetricTag); i { case 0: return &v.state @@ -114883,7 +117415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag); i { case 0: return &v.state @@ -114895,7 +117427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1Counter); i { case 0: return &v.state @@ -114907,7 +117439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1MetricTag); i { case 0: return &v.state @@ -114919,7 +117451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1); i { case 0: return &v.state @@ -114931,7 +117463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeCounter); i { case 0: return &v.state @@ -114943,7 +117475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeMetricTag); i { case 0: return &v.state @@ -114955,7 +117487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType); i { case 0: return &v.state @@ -114967,7 +117499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthCounter); i { case 0: return &v.state @@ -114979,7 +117511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthMetricTag); i { case 0: return &v.state @@ -114991,7 +117523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength); i { case 0: return &v.state @@ -115003,7 +117535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidCounter); i { case 0: return &v.state @@ -115015,7 +117547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidMetricTag); i { case 0: return &v.state @@ -115027,7 +117559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid); i { case 0: return &v.state @@ -115039,7 +117571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberCounter); i { case 0: return &v.state @@ -115051,7 +117583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberMetricTag); i { case 0: return &v.state @@ -115063,7 +117595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber); i { case 0: return &v.state @@ -115075,7 +117607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2Counter); i { case 0: return &v.state @@ -115087,7 +117619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2MetricTag); i { case 0: return &v.state @@ -115099,7 +117631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2); i { case 0: return &v.state @@ -115111,7 +117643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeCounter); i { case 0: return &v.state @@ -115123,7 +117655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeMetricTag); i { case 0: return &v.state @@ -115135,7 +117667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType); i { case 0: return &v.state @@ -115147,7 +117679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeCounter); i { case 0: return &v.state @@ -115159,7 +117691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeMetricTag); i { case 0: return &v.state @@ -115171,7 +117703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType); i { case 0: return &v.state @@ -115183,7 +117715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthCounter); i { case 0: return &v.state @@ -115195,7 +117727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthMetricTag); i { case 0: return &v.state @@ -115207,7 +117739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength); i { case 0: return &v.state @@ -115219,7 +117751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthCounter); i { case 0: return &v.state @@ -115231,7 +117763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthMetricTag); i { case 0: return &v.state @@ -115243,7 +117775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength); i { case 0: return &v.state @@ -115255,7 +117787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationCounter); i { case 0: return &v.state @@ -115267,7 +117799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationMetricTag); i { case 0: return &v.state @@ -115279,7 +117811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation); i { case 0: return &v.state @@ -115291,7 +117823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrCounter); i { case 0: return &v.state @@ -115303,7 +117835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrMetricTag); i { case 0: return &v.state @@ -115315,7 +117847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr); i { case 0: return &v.state @@ -115327,7 +117859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrCounter); i { case 0: return &v.state @@ -115339,7 +117871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrMetricTag); i { case 0: return &v.state @@ -115351,7 +117883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr); i { case 0: return &v.state @@ -115363,7 +117895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrCounter); i { case 0: return &v.state @@ -115375,7 +117907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrMetricTag); i { case 0: return &v.state @@ -115387,7 +117919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr); i { case 0: return &v.state @@ -115399,7 +117931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrCounter); i { case 0: return &v.state @@ -115411,7 +117943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrMetricTag); i { case 0: return &v.state @@ -115423,7 +117955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr); i { case 0: return &v.state @@ -115435,7 +117967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeCounter); i { case 0: return &v.state @@ -115447,7 +117979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeMetricTag); i { case 0: return &v.state @@ -115459,7 +117991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType); i { case 0: return &v.state @@ -115471,7 +118003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeCounter); i { case 0: return &v.state @@ -115483,7 +118015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeMetricTag); i { case 0: return &v.state @@ -115495,7 +118027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode); i { case 0: return &v.state @@ -115507,7 +118039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum); i { case 0: return &v.state @@ -115519,7 +118051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierCounter); i { case 0: return &v.state @@ -115531,7 +118063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierMetricTag); i { case 0: return &v.state @@ -115543,7 +118075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier); i { case 0: return &v.state @@ -115555,7 +118087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberCounter); i { case 0: return &v.state @@ -115567,7 +118099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -115579,7 +118111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber); i { case 0: return &v.state @@ -115591,7 +118123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum); i { case 0: return &v.state @@ -115603,7 +118135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierCounter); i { case 0: return &v.state @@ -115615,7 +118147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierMetricTag); i { case 0: return &v.state @@ -115627,7 +118159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier); i { case 0: return &v.state @@ -115639,7 +118171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberCounter); i { case 0: return &v.state @@ -115651,7 +118183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberMetricTag); i { case 0: return &v.state @@ -115663,7 +118195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber); i { case 0: return &v.state @@ -115675,7 +118207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeCounter); i { case 0: return &v.state @@ -115687,7 +118219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeMetricTag); i { case 0: return &v.state @@ -115699,7 +118231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType); i { case 0: return &v.state @@ -115711,7 +118243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeCounter); i { case 0: return &v.state @@ -115723,7 +118255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeMetricTag); i { case 0: return &v.state @@ -115735,7 +118267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode); i { case 0: return &v.state @@ -115747,7 +118279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierCounter); i { case 0: return &v.state @@ -115759,7 +118291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierMetricTag); i { case 0: return &v.state @@ -115771,7 +118303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier); i { case 0: return &v.state @@ -115783,7 +118315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberCounter); i { case 0: return &v.state @@ -115795,7 +118327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -115807,7 +118339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber); i { case 0: return &v.state @@ -115819,7 +118351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum); i { case 0: return &v.state @@ -115831,7 +118363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum); i { case 0: return &v.state @@ -115843,7 +118375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressCounter); i { case 0: return &v.state @@ -115855,7 +118387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressMetricTag); i { case 0: return &v.state @@ -115867,7 +118399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress); i { case 0: return &v.state @@ -115879,7 +118411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlCounter); i { case 0: return &v.state @@ -115891,7 +118423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlMetricTag); i { case 0: return &v.state @@ -115903,7 +118435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl); i { case 0: return &v.state @@ -115915,7 +118447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeCounter); i { case 0: return &v.state @@ -115927,7 +118459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeMetricTag); i { case 0: return &v.state @@ -115939,7 +118471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType); i { case 0: return &v.state @@ -115951,7 +118483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionCounter); i { case 0: return &v.state @@ -115963,7 +118495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionMetricTag); i { case 0: return &v.state @@ -115975,7 +118507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version); i { case 0: return &v.state @@ -115987,7 +118519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeCounter); i { case 0: return &v.state @@ -115999,7 +118531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeMetricTag); i { case 0: return &v.state @@ -116011,7 +118543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type); i { case 0: return &v.state @@ -116023,7 +118555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedCounter); i { case 0: return &v.state @@ -116035,7 +118567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedMetricTag); i { case 0: return &v.state @@ -116047,7 +118579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused); i { case 0: return &v.state @@ -116059,7 +118591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum); i { case 0: return &v.state @@ -116071,7 +118603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressCounter); i { case 0: return &v.state @@ -116083,7 +118615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressMetricTag); i { case 0: return &v.state @@ -116095,7 +118627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress); i { case 0: return &v.state @@ -116107,7 +118639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelCounter); i { case 0: return &v.state @@ -116119,7 +118651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelMetricTag); i { case 0: return &v.state @@ -116131,7 +118663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel); i { case 0: return &v.state @@ -116143,7 +118675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassCounter); i { case 0: return &v.state @@ -116155,7 +118687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassMetricTag); i { case 0: return &v.state @@ -116167,7 +118699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass); i { case 0: return &v.state @@ -116179,7 +118711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackCounter); i { case 0: return &v.state @@ -116191,7 +118723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackMetricTag); i { case 0: return &v.state @@ -116203,7 +118735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack); i { case 0: return &v.state @@ -116215,7 +118747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveCounter); i { case 0: return &v.state @@ -116227,7 +118759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveMetricTag); i { case 0: return &v.state @@ -116239,7 +118771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive); i { case 0: return &v.state @@ -116251,7 +118783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Version); i { case 0: return &v.state @@ -116263,7 +118795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Success); i { case 0: return &v.state @@ -116275,7 +118807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Failure); i { case 0: return &v.state @@ -116287,7 +118819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigRequest); i { case 0: return &v.state @@ -116299,7 +118831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigRequest); i { case 0: return &v.state @@ -116311,7 +118843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigResponse); i { case 0: return &v.state @@ -116323,7 +118855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigResponse); i { case 0: return &v.state @@ -116335,7 +118867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigResponse); i { case 0: return &v.state @@ -116347,7 +118879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateRequest); i { case 0: return &v.state @@ -116359,7 +118891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateResponse); i { case 0: return &v.state @@ -116371,7 +118903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionRequest); i { case 0: return &v.state @@ -116383,7 +118915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionResponse); i { case 0: return &v.state @@ -116395,7 +118927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsRequest); i { case 0: return &v.state @@ -116407,7 +118939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsResponse); i { case 0: return &v.state @@ -116419,7 +118951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesRequest); i { case 0: return &v.state @@ -116431,7 +118963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesResponse); i { case 0: return &v.state @@ -116443,7 +118975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureRequest); i { case 0: return &v.state @@ -116455,7 +118987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureResponse); i { case 0: return &v.state @@ -116467,7 +118999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetVersionResponse); i { case 0: return &v.state @@ -116479,7 +119011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagProtocol_Choice); i { case 0: return &v.state @@ -116491,7 +119023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagPortLacp_ActorActivity); i { case 0: return &v.state @@ -116503,7 +119035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EthernetConnection_Choice); i { case 0: return &v.state @@ -116515,7 +119047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVlan_Tpid); i { case 0: return &v.state @@ -116527,7 +119059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv4GatewayMAC_Choice); i { case 0: return &v.state @@ -116539,7 +119071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv6GatewayMAC_Choice); i { case 0: return &v.state @@ -116551,7 +119083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Speed); i { case 0: return &v.state @@ -116563,7 +119095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Media); i { case 0: return &v.state @@ -116575,7 +119107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1FlowControl_Choice); i { case 0: return &v.state @@ -116587,7 +119119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Capture_Format); i { case 0: return &v.state @@ -116599,7 +119131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureFilter_Choice); i { case 0: return &v.state @@ -116611,7 +119143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_NetworkType); i { case 0: return &v.state @@ -116623,7 +119155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_LevelType); i { case 0: return &v.state @@ -116635,7 +119167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterfaceAuthentication_AuthType); i { case 0: return &v.state @@ -116647,7 +119179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisAuthenticationBase_AuthType); i { case 0: return &v.state @@ -116659,7 +119191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_OriginType); i { case 0: return &v.state @@ -116671,7 +119203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_RedistributionType); i { case 0: return &v.state @@ -116683,7 +119215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_OriginType); i { case 0: return &v.state @@ -116695,7 +119227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_RedistributionType); i { case 0: return &v.state @@ -116707,7 +119239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpMessageHeaderError_Subcode); i { case 0: return &v.state @@ -116719,7 +119251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpOpenMessageError_Subcode); i { case 0: return &v.state @@ -116731,7 +119263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpUpdateMessageError_Subcode); i { case 0: return &v.state @@ -116743,7 +119275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpCeaseError_Subcode); i { case 0: return &v.state @@ -116755,7 +119287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsType); i { case 0: return &v.state @@ -116767,7 +119299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsNumberWidth); i { case 0: return &v.state @@ -116779,7 +119311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -116791,7 +119323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteAdvanced_Origin); i { case 0: return &v.state @@ -116803,7 +119335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpCommunity_Type); i { case 0: return &v.state @@ -116815,7 +119347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Type); i { case 0: return &v.state @@ -116827,7 +119359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Subtype); i { case 0: return &v.state @@ -116839,7 +119371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPath_AsSetMode); i { case 0: return &v.state @@ -116851,7 +119383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPathSegment_Type); i { case 0: return &v.state @@ -116863,7 +119395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EvpnEvis_Choice); i { case 0: return &v.state @@ -116875,7 +119407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EviVxlan_ReplicationType); i { case 0: return &v.state @@ -116887,7 +119419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteDistinguisher_RdType); i { case 0: return &v.state @@ -116899,7 +119431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteTarget_RtType); i { case 0: return &v.state @@ -116911,7 +119443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopMode); i { case 0: return &v.state @@ -116923,8 +119455,92 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { + file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunity_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType_Choice); i { case 0: return &v.state case 1: @@ -116935,7 +119551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopMode); i { case 0: return &v.state @@ -116947,7 +119563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -116959,7 +119575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopMode); i { case 0: return &v.state @@ -116971,7 +119587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopAddressType); i { case 0: return &v.state @@ -116983,7 +119599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv_AddressFamily); i { case 0: return &v.state @@ -116995,7 +119611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv_BindingSidType); i { case 0: return &v.state @@ -117007,7 +119623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy); i { case 0: return &v.state @@ -117019,7 +119635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment_SegmentType); i { case 0: return &v.state @@ -117031,7 +119647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopMode); i { case 0: return &v.state @@ -117043,7 +119659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopAddressType); i { case 0: return &v.state @@ -117055,7 +119671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsType); i { case 0: return &v.state @@ -117067,7 +119683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsNumberWidth); i { case 0: return &v.state @@ -117079,7 +119695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -117091,7 +119707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis_Choice); i { case 0: return &v.state @@ -117103,7 +119719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan_ReplicationType); i { case 0: return &v.state @@ -117115,7 +119731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -117127,7 +119743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -117139,7 +119755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle); i { case 0: return &v.state @@ -117151,7 +119767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro_PrependNeighborIp); i { case 0: return &v.state @@ -117163,7 +119779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_Type); i { case 0: return &v.state @@ -117175,7 +119791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_HopType); i { case 0: return &v.state @@ -117187,7 +119803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx_Choice); i { case 0: return &v.state @@ -117199,7 +119815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter_Mode); i { case 0: return &v.state @@ -117211,7 +119827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader_Choice); i { case 0: return &v.state @@ -117223,7 +119839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority_Choice); i { case 0: return &v.state @@ -117235,7 +119851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp_Choice); i { case 0: return &v.state @@ -117247,7 +119863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6_Choice); i { case 0: return &v.state @@ -117259,7 +119875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize_Choice); i { case 0: return &v.state @@ -117271,7 +119887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Choice); i { case 0: return &v.state @@ -117283,7 +119899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Predefined); i { case 0: return &v.state @@ -117295,7 +119911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate_Choice); i { case 0: return &v.state @@ -117307,7 +119923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration_Choice); i { case 0: return &v.state @@ -117319,7 +119935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay_Choice); i { case 0: return &v.state @@ -117331,7 +119947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap_Choice); i { case 0: return &v.state @@ -117343,7 +119959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics_Mode); i { case 0: return &v.state @@ -117355,7 +119971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio_Choice); i { case 0: return &v.state @@ -117367,7 +119983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest_Type); i { case 0: return &v.state @@ -117379,7 +119995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection_Choice); i { case 0: return &v.state @@ -117391,7 +120007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId_Choice); i { case 0: return &v.state @@ -117403,7 +120019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId_Choice); i { case 0: return &v.state @@ -117415,7 +120031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType_Choice); i { case 0: return &v.state @@ -117427,7 +120043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType_Choice); i { case 0: return &v.state @@ -117439,7 +120055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName_Choice); i { case 0: return &v.state @@ -117451,7 +120067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error_Kind); i { case 0: return &v.state @@ -117463,7 +120079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate_Choice); i { case 0: return &v.state @@ -117475,7 +120091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate_PropertyNames); i { case 0: return &v.state @@ -117487,7 +120103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState_Choice); i { case 0: return &v.state @@ -117499,7 +120115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort_Choice); i { case 0: return &v.state @@ -117511,7 +120127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic_Choice); i { case 0: return &v.state @@ -117523,7 +120139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol_Choice); i { case 0: return &v.state @@ -117535,7 +120151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink_State); i { case 0: return &v.state @@ -117547,7 +120163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture_State); i { case 0: return &v.state @@ -117559,7 +120175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit_State); i { case 0: return &v.state @@ -117571,7 +120187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll_State); i { case 0: return &v.state @@ -117583,7 +120199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute_State); i { case 0: return &v.state @@ -117595,7 +120211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp_Choice); i { case 0: return &v.state @@ -117607,7 +120223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin_State); i { case 0: return &v.state @@ -117619,7 +120235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction_Choice); i { case 0: return &v.state @@ -117631,7 +120247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse_Choice); i { case 0: return &v.state @@ -117643,7 +120259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol_Choice); i { case 0: return &v.state @@ -117655,7 +120271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol_Choice); i { case 0: return &v.state @@ -117667,7 +120283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4_Choice); i { case 0: return &v.state @@ -117679,7 +120295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4_Choice); i { case 0: return &v.state @@ -117691,7 +120307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse_Result); i { case 0: return &v.state @@ -117703,7 +120319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6_Choice); i { case 0: return &v.state @@ -117715,7 +120331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6_Choice); i { case 0: return &v.state @@ -117727,7 +120343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse_Result); i { case 0: return &v.state @@ -117739,7 +120355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp_Choice); i { case 0: return &v.state @@ -117751,7 +120367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification_Choice); i { case 0: return &v.state @@ -117763,7 +120379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest_Choice); i { case 0: return &v.state @@ -117775,7 +120391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse_Choice); i { case 0: return &v.state @@ -117787,7 +120403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117799,7 +120415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Link); i { case 0: return &v.state @@ -117811,7 +120427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Capture); i { case 0: return &v.state @@ -117823,7 +120439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Transmit); i { case 0: return &v.state @@ -117835,7 +120451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest_MetricNames); i { case 0: return &v.state @@ -117847,7 +120463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter_MetricNames); i { case 0: return &v.state @@ -117859,7 +120475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric_Transmit); i { case 0: return &v.state @@ -117871,7 +120487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue_Choice); i { case 0: return &v.state @@ -117883,7 +120499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117895,7 +120511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_SessionState); i { case 0: return &v.state @@ -117907,7 +120523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_FsmState); i { case 0: return &v.state @@ -117919,7 +120535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117931,7 +120547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_SessionState); i { case 0: return &v.state @@ -117943,7 +120559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_FsmState); i { case 0: return &v.state @@ -117955,7 +120571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117967,7 +120583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117979,7 +120595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric_OperStatus); i { case 0: return &v.state @@ -117991,7 +120607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118003,7 +120619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Activity); i { case 0: return &v.state @@ -118015,7 +120631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Timeout); i { case 0: return &v.state @@ -118027,7 +120643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Synchronization); i { case 0: return &v.state @@ -118039,7 +120655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118051,7 +120667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118063,7 +120679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest_Choice); i { case 0: return &v.state @@ -118075,7 +120691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse_Choice); i { case 0: return &v.state @@ -118087,7 +120703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest_PrefixFilters); i { case 0: return &v.state @@ -118099,7 +120715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter_Origin); i { case 0: return &v.state @@ -118111,7 +120727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter_Origin); i { case 0: return &v.state @@ -118123,7 +120739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState_Origin); i { case 0: return &v.state @@ -118135,7 +120751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState_Origin); i { case 0: return &v.state @@ -118147,7 +120763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity_Type); i { case 0: return &v.state @@ -118159,7 +120775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment_Type); i { case 0: return &v.state @@ -118171,7 +120787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState_PduType); i { case 0: return &v.state @@ -118183,7 +120799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_RedistributionType); i { case 0: return &v.state @@ -118195,7 +120811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_OriginType); i { case 0: return &v.state @@ -118207,7 +120823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix_RedistributionType); i { case 0: return &v.state @@ -118219,7 +120835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_RedistributionType); i { case 0: return &v.state @@ -118231,7 +120847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_OriginType); i { case 0: return &v.state @@ -118243,7 +120859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_ChassisIdType); i { case 0: return &v.state @@ -118255,7 +120871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_PortIdType); i { case 0: return &v.state @@ -118267,7 +120883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState_CapabilityName); i { case 0: return &v.state @@ -118279,7 +120895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_SessionStatus); i { case 0: return &v.state @@ -118291,7 +120907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_LastFlapReason); i { case 0: return &v.state @@ -118303,7 +120919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero_Type); i { case 0: return &v.state @@ -118315,7 +120931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst_Choice); i { case 0: return &v.state @@ -118327,7 +120943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc_Choice); i { case 0: return &v.state @@ -118339,7 +120955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType_Choice); i { case 0: return &v.state @@ -118351,7 +120967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue_Choice); i { case 0: return &v.state @@ -118363,7 +120979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority_Choice); i { case 0: return &v.state @@ -118375,7 +120991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi_Choice); i { case 0: return &v.state @@ -118387,7 +121003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId_Choice); i { case 0: return &v.state @@ -118399,7 +121015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid_Choice); i { case 0: return &v.state @@ -118411,7 +121027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags_Choice); i { case 0: return &v.state @@ -118423,7 +121039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0_Choice); i { case 0: return &v.state @@ -118435,7 +121051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni_Choice); i { case 0: return &v.state @@ -118447,7 +121063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1_Choice); i { case 0: return &v.state @@ -118459,7 +121075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version_Choice); i { case 0: return &v.state @@ -118471,7 +121087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength_Choice); i { case 0: return &v.state @@ -118483,7 +121099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength_Choice); i { case 0: return &v.state @@ -118495,7 +121111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification_Choice); i { case 0: return &v.state @@ -118507,7 +121123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved_Choice); i { case 0: return &v.state @@ -118519,7 +121135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment_Choice); i { case 0: return &v.state @@ -118531,7 +121147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments_Choice); i { case 0: return &v.state @@ -118543,7 +121159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset_Choice); i { case 0: return &v.state @@ -118555,7 +121171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive_Choice); i { case 0: return &v.state @@ -118567,7 +121183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol_Choice); i { case 0: return &v.state @@ -118579,7 +121195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Choice); i { case 0: return &v.state @@ -118591,7 +121207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Generated); i { case 0: return &v.state @@ -118603,7 +121219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src_Choice); i { case 0: return &v.state @@ -118615,7 +121231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst_Choice); i { case 0: return &v.state @@ -118627,7 +121243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw_Choice); i { case 0: return &v.state @@ -118639,7 +121255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb_Choice); i { case 0: return &v.state @@ -118651,7 +121267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn_Choice); i { case 0: return &v.state @@ -118663,7 +121279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence_Choice); i { case 0: return &v.state @@ -118675,7 +121291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay_Choice); i { case 0: return &v.state @@ -118687,7 +121303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput_Choice); i { case 0: return &v.state @@ -118699,7 +121315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability_Choice); i { case 0: return &v.state @@ -118711,7 +121327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary_Choice); i { case 0: return &v.state @@ -118723,7 +121339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused_Choice); i { case 0: return &v.state @@ -118735,7 +121351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version_Choice); i { case 0: return &v.state @@ -118747,7 +121363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass_Choice); i { case 0: return &v.state @@ -118759,7 +121375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel_Choice); i { case 0: return &v.state @@ -118771,7 +121387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength_Choice); i { case 0: return &v.state @@ -118783,7 +121399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader_Choice); i { case 0: return &v.state @@ -118795,7 +121411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit_Choice); i { case 0: return &v.state @@ -118807,7 +121423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src_Choice); i { case 0: return &v.state @@ -118819,7 +121435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst_Choice); i { case 0: return &v.state @@ -118831,7 +121447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst_Choice); i { case 0: return &v.state @@ -118843,7 +121459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc_Choice); i { case 0: return &v.state @@ -118855,7 +121471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType_Choice); i { case 0: return &v.state @@ -118867,7 +121483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode_Choice); i { case 0: return &v.state @@ -118879,7 +121495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector_Choice); i { case 0: return &v.state @@ -118891,7 +121507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0_Choice); i { case 0: return &v.state @@ -118903,7 +121519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1_Choice); i { case 0: return &v.state @@ -118915,7 +121531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2_Choice); i { case 0: return &v.state @@ -118927,7 +121543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3_Choice); i { case 0: return &v.state @@ -118939,7 +121555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4_Choice); i { case 0: return &v.state @@ -118951,7 +121567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5_Choice); i { case 0: return &v.state @@ -118963,7 +121579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6_Choice); i { case 0: return &v.state @@ -118975,7 +121591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7_Choice); i { case 0: return &v.state @@ -118987,7 +121603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst_Choice); i { case 0: return &v.state @@ -118999,7 +121615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc_Choice); i { case 0: return &v.state @@ -119011,7 +121627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType_Choice); i { case 0: return &v.state @@ -119023,7 +121639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode_Choice); i { case 0: return &v.state @@ -119035,7 +121651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime_Choice); i { case 0: return &v.state @@ -119047,7 +121663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort_Choice); i { case 0: return &v.state @@ -119059,7 +121675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort_Choice); i { case 0: return &v.state @@ -119071,7 +121687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum_Choice); i { case 0: return &v.state @@ -119083,7 +121699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum_Choice); i { case 0: return &v.state @@ -119095,7 +121711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset_Choice); i { case 0: return &v.state @@ -119107,7 +121723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs_Choice); i { case 0: return &v.state @@ -119119,7 +121735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr_Choice); i { case 0: return &v.state @@ -119131,7 +121747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho_Choice); i { case 0: return &v.state @@ -119143,7 +121759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg_Choice); i { case 0: return &v.state @@ -119155,7 +121771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck_Choice); i { case 0: return &v.state @@ -119167,7 +121783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh_Choice); i { case 0: return &v.state @@ -119179,7 +121795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst_Choice); i { case 0: return &v.state @@ -119191,7 +121807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn_Choice); i { case 0: return &v.state @@ -119203,7 +121819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin_Choice); i { case 0: return &v.state @@ -119215,7 +121831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow_Choice); i { case 0: return &v.state @@ -119227,7 +121843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort_Choice); i { case 0: return &v.state @@ -119239,7 +121855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort_Choice); i { case 0: return &v.state @@ -119251,7 +121867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength_Choice); i { case 0: return &v.state @@ -119263,7 +121879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Choice); i { case 0: return &v.state @@ -119275,7 +121891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Generated); i { case 0: return &v.state @@ -119287,7 +121903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent_Choice); i { case 0: return &v.state @@ -119299,7 +121915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0_Choice); i { case 0: return &v.state @@ -119311,7 +121927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion_Choice); i { case 0: return &v.state @@ -119323,7 +121939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol_Choice); i { case 0: return &v.state @@ -119335,7 +121951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Choice); i { case 0: return &v.state @@ -119347,7 +121963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Generated); i { case 0: return &v.state @@ -119359,7 +121975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1_Choice); i { case 0: return &v.state @@ -119371,7 +121987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version_Choice); i { case 0: return &v.state @@ -119383,7 +121999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType_Choice); i { case 0: return &v.state @@ -119395,7 +122011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved_Choice); i { case 0: return &v.state @@ -119407,7 +122023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag_Choice); i { case 0: return &v.state @@ -119419,7 +122035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag_Choice); i { case 0: return &v.state @@ -119431,7 +122047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag_Choice); i { case 0: return &v.state @@ -119443,7 +122059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType_Choice); i { case 0: return &v.state @@ -119455,7 +122071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength_Choice); i { case 0: return &v.state @@ -119467,7 +122083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid_Choice); i { case 0: return &v.state @@ -119479,7 +122095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber_Choice); i { case 0: return &v.state @@ -119491,7 +122107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber_Choice); i { case 0: return &v.state @@ -119503,7 +122119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType_Choice); i { case 0: return &v.state @@ -119515,7 +122131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength_Choice); i { case 0: return &v.state @@ -119527,7 +122143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents_Choice); i { case 0: return &v.state @@ -119539,7 +122155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader_Choice); i { case 0: return &v.state @@ -119551,7 +122167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version_Choice); i { case 0: return &v.state @@ -119563,7 +122179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag_Choice); i { case 0: return &v.state @@ -119575,7 +122191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag_Choice); i { case 0: return &v.state @@ -119587,7 +122203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1_Choice); i { case 0: return &v.state @@ -119599,7 +122215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType_Choice); i { case 0: return &v.state @@ -119611,7 +122227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength_Choice); i { case 0: return &v.state @@ -119623,7 +122239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid_Choice); i { case 0: return &v.state @@ -119635,7 +122251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber_Choice); i { case 0: return &v.state @@ -119647,7 +122263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2_Choice); i { case 0: return &v.state @@ -119659,7 +122275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType_Choice); i { case 0: return &v.state @@ -119671,7 +122287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType_Choice); i { case 0: return &v.state @@ -119683,7 +122299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength_Choice); i { case 0: return &v.state @@ -119695,7 +122311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength_Choice); i { case 0: return &v.state @@ -119707,7 +122323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation_Choice); i { case 0: return &v.state @@ -119719,7 +122335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr_Choice); i { case 0: return &v.state @@ -119731,7 +122347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr_Choice); i { case 0: return &v.state @@ -119743,7 +122359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr_Choice); i { case 0: return &v.state @@ -119755,7 +122371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr_Choice); i { case 0: return &v.state @@ -119767,7 +122383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType_Choice); i { case 0: return &v.state @@ -119779,7 +122395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode_Choice); i { case 0: return &v.state @@ -119791,7 +122407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Choice); i { case 0: return &v.state @@ -119803,7 +122419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Generated); i { case 0: return &v.state @@ -119815,7 +122431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier_Choice); i { case 0: return &v.state @@ -119827,7 +122443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber_Choice); i { case 0: return &v.state @@ -119839,7 +122455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Choice); i { case 0: return &v.state @@ -119851,7 +122467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Generated); i { case 0: return &v.state @@ -119863,7 +122479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier_Choice); i { case 0: return &v.state @@ -119875,7 +122491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber_Choice); i { case 0: return &v.state @@ -119887,7 +122503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType_Choice); i { case 0: return &v.state @@ -119899,7 +122515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode_Choice); i { case 0: return &v.state @@ -119911,7 +122527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier_Choice); i { case 0: return &v.state @@ -119923,7 +122539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber_Choice); i { case 0: return &v.state @@ -119935,7 +122551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Choice); i { case 0: return &v.state @@ -119947,7 +122563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Generated); i { case 0: return &v.state @@ -119959,7 +122575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Choice); i { case 0: return &v.state @@ -119971,7 +122587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Generated); i { case 0: return &v.state @@ -119983,7 +122599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress_Choice); i { case 0: return &v.state @@ -119995,7 +122611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl_Choice); i { case 0: return &v.state @@ -120007,7 +122623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType_Choice); i { case 0: return &v.state @@ -120019,7 +122635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version_Choice); i { case 0: return &v.state @@ -120031,7 +122647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type_Choice); i { case 0: return &v.state @@ -120043,7 +122659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused_Choice); i { case 0: return &v.state @@ -120055,7 +122671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Choice); i { case 0: return &v.state @@ -120067,7 +122683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Generated); i { case 0: return &v.state @@ -120079,7 +122695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress_Choice); i { case 0: return &v.state @@ -120091,7 +122707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel_Choice); i { case 0: return &v.state @@ -120103,7 +122719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass_Choice); i { case 0: return &v.state @@ -120115,7 +122731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack_Choice); i { case 0: return &v.state @@ -120127,7 +122743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive_Choice); i { case 0: return &v.state @@ -120246,36 +122862,37 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[108].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[109].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[110].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[111].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[112].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[113].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[114].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[115].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[116].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[117].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[118].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[119].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[120].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[121].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[122].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[123].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[124].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[125].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[126].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[127].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[128].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[129].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[130].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[131].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[132].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[133].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[134].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[135].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[136].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[137].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[138].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[139].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[140].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[141].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[142].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[143].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[144].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[145].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[146].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[147].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[148].OneofWrappers = []interface{}{} @@ -120293,7 +122910,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[160].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[161].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[162].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[163].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[164].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[165].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[166].OneofWrappers = []interface{}{} @@ -120318,10 +122934,12 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[185].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[186].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[187].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[188].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[189].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[190].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[191].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[192].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[193].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[194].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[195].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[196].OneofWrappers = []interface{}{} @@ -120331,91 +122949,89 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[200].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[201].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[202].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[203].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[204].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[206].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[205].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[207].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[208].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[209].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[210].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[212].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[213].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[214].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[215].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[216].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[217].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[218].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[219].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[220].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[221].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[222].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[223].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[224].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[225].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[228].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[229].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[231].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[234].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[226].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[227].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[233].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[235].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[236].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[237].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[238].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[239].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[240].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[241].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[242].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[243].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[244].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[245].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[246].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[247].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[248].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[249].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[251].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[252].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[253].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[254].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[255].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[257].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[256].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[258].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[259].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[260].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[261].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[262].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[263].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[264].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[265].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[266].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[267].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[269].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[271].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[272].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[273].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[274].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[275].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[276].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[278].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[280].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[277].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[279].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[281].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[282].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[283].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[284].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[285].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[287].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[289].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[290].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[291].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[292].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[293].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[294].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[295].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[297].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[296].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[298].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[299].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[301].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[302].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[303].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[304].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[305].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[307].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[308].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[309].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[310].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[311].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[312].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[313].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[314].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[315].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[316].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[317].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[318].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[319].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[320].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[321].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[322].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[323].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[324].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[325].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[326].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[327].OneofWrappers = []interface{}{} @@ -120815,13 +123431,31 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[721].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[722].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[723].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[724].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[725].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[726].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[727].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[728].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[729].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[730].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[731].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[732].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[733].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[734].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[735].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[736].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[737].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[738].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[739].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[740].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[741].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_otg_proto_rawDesc, - NumEnums: 305, - NumMessages: 1047, + NumEnums: 312, + NumMessages: 1072, NumExtensions: 0, NumServices: 1, }, diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index 2ae7eda1..f0b67815 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.2 +/* Open Traffic Generator API 0.12.3 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -2595,6 +2595,10 @@ message BgpV4RouteRange { // required = true string name = 10; + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -2624,6 +2628,16 @@ message BgpV4RouteRange { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. repeated BgpExtCommunity ext_communities = 11; + + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + repeated BgpExtendedCommunity extended_communities = 12; } // The BGP Additional Paths feature is a BGP extension that allows the advertisement @@ -2636,6 +2650,354 @@ message BgpAddPath { optional uint32 path_id = 1; } +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// with the Type Code 16. Community and Extended Communities attributes are utilized +// to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. +// An extended community is an 8-Bytes value.It is divided into two main parts. The +// first 2 Bytes of the community encode a type and optonal sub-type field. The last +// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a +// format defined by the type and optional sub-type field. Extended communities provide +// a larger range for grouping or categorizing communities. +message BgpExtendedCommunity { + + message Choice { + enum Enum { + unspecified = 0; + transitive_2octet_as_type = 1; + transitive_ipv4_address_type = 2; + transitive_4octet_as_type = 3; + transitive_opaque_type = 4; + transitive_evpn_type = 5; + non_transitive_2octet_as_type = 6; + custom = 7; + } + } + // Description missing in models + // default = Choice.Enum.transitive_2octet_as_type + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsType transitive_2octet_as_type = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressType transitive_ipv4_address_type = 3; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsType transitive_4octet_as_type = 4; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueType transitive_opaque_type = 5; + + // Description missing in models + optional BgpExtendedCommunityTransitiveEvpnType transitive_evpn_type = 6; + + // Description missing in models + optional BgpExtendedCommunityNonTransitive2OctetAsType non_transitive_2octet_as_type = 7; + + // Description missing in models + optional BgpExtendedCommunityCustomType custom = 8; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +message BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_2byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_4byte_admin = 2; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +message BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_2byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_4byte_admin = 2; +} + +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +// +message BgpExtendedCommunityTransitive2OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin route_origin_subtype = 3; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP It is sent with sub-type as 0x03. +message BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + optional string global_ipv4_admin = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +message BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + optional string global_ipv4_admin = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +message BgpExtendedCommunityTransitiveIpv4AddressType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin route_origin_subtype = 3; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02 +message BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_4byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03. +message BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_4byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +message BgpExtendedCommunityTransitive4OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin route_origin_subtype = 3; +} + +// The Color Community contains locally administrator defined 'color' value which is +// used in conjunction with Encapsulation attribute to decide whether a data packet +// can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent +// with sub-type as 0x0b. +message BgpExtendedCommunityTransitiveOpaqueTypeColor { + + // Two octet flag values. + // default = 0 + optional uint32 flags = 1; + + // The color value is user defined and configured locally and used to determine whether + // a data packet can be transmitted on a certain tunnel or not in conjunction with the + // Encapsulation attribute. It is defined in RFC9012. + // default = 0 + optional uint32 color = 2; +} + +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +message BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + // + // default = 0 + optional uint32 reserved = 1; + + // Identifies the type of tunneling technology being signalled. Initially defined in + // RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 + // over IP [RFC9012], + // 2 GRE [RFC9012] + // 7 IP in IP [RFC9012] + // 8 VXLAN Encapsulation [RFC8365] + // 9 NVGRE Encapsulation [RFC8365] + // 10 MPLS Encapsulation [RFC8365] + // 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] + // 19 Geneve Encapsulation [RFC8926] + // default = 1 + optional uint32 tunnel_type = 2; +} + +// The Transitive Opaque Extended Community is sent as type 0x03. +message BgpExtendedCommunityTransitiveOpaqueType { + + message Choice { + enum Enum { + unspecified = 0; + color_subtype = 1; + encapsulation_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.color_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueTypeColor color_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation encapsulation_subtype = 3; +} + +// The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN +// Type-2 Routes . It is sent with sub-type 0x03. +message BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + + // MAC Address of the PE Router. + // default = 0:0:0:0:0:0 + optional string router_mac = 1; +} + +// The Transitive EVPN Extended Community is sent as type 0x06 . +message BgpExtendedCommunityTransitiveEvpnType { + + message Choice { + enum Enum { + unspecified = 0; + router_mac_subtype = 1; + } + } + // Description missing in models + // default = Choice.Enum.router_mac_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveEvpnTypeRouterMac router_mac_subtype = 2; +} + +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +message BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + + // The value of the Global Administrator subfield should represent the Autonomous System + // of the router that attaches the Link Bandwidth Community. If four octet AS numbering + // scheme is used, AS_TRANS (23456) should be used. + // default = 100 + optional uint32 global_2byte_as = 1; + + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + // default = 0 + optional float bandwidth = 2; +} + +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +// +message BgpExtendedCommunityNonTransitive2OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + link_bandwidth_subtype = 1; + } + } + // Description missing in models + // default = Choice.Enum.link_bandwidth_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth link_bandwidth_subtype = 2; +} + +// Add a custom Extended Community with a combination of types , sub-types and values +// not explicitly specified above or not defined yet. +message BgpExtendedCommunityCustomType { + + // The type to be set in the Extended Community attribute. Accepts hexadecimal input + // upto ff . + // default = 00 + optional string community_type = 1; + + // The sub-type to be set in the Extended Community attribute. For certain types with + // no sub-type this byte can also be used as part of an extended value field. Accepts + // hexadecimal input upto ff. + // default = 00 + optional string community_subtype = 2; + + // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts + // hexadecimal input upto ffffffffffff. + // default = 000000000000 + optional string value = 3; +} + // Emulated BGPv6 route range. message BgpV6RouteRange { @@ -2696,6 +3058,10 @@ message BgpV6RouteRange { // required = true string name = 10; + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -2725,6 +3091,16 @@ message BgpV6RouteRange { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. repeated BgpExtCommunity ext_communities = 11; + + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + repeated BgpExtendedCommunity extended_communities = 12; } // Configuration for BGP Segment Routing Traffic Engineering(SRTE) diff --git a/requirements.txt b/requirements.txt index 0611e78f..6af84746 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -protobuf~=3.15.0 ; python_version <= '3.6' -protobuf~=4.23.3 ; python_version > '3.6' -requests PyYAML -grpcio~=1.54.2 ; python_version > '3.6' grpcio-tools~=1.54.2 ; python_version > '3.6' -grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' +grpcio~=1.54.2 ; python_version > '3.6' +grpcio~=1.35.0 ; python_version <= '3.6' +requests +protobuf~=4.23.3 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' semantic_version urllib3 diff --git a/snappi/__init__.py b/snappi/__init__.py index 32b6556f..9d745dc0 100644 --- a/snappi/__init__.py +++ b/snappi/__init__.py @@ -97,6 +97,25 @@ from .snappi import BgpLearnedInformationFilter from .snappi import BgpV4RouteRange from .snappi import BgpAddPath +from .snappi import BgpExtendedCommunity +from .snappi import BgpExtendedCommunityTransitive2OctetAsType +from .snappi import BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressType +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitive4OctetAsType +from .snappi import BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitiveOpaqueType +from .snappi import BgpExtendedCommunityTransitiveOpaqueTypeColor +from .snappi import BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +from .snappi import BgpExtendedCommunityTransitiveEvpnType +from .snappi import BgpExtendedCommunityTransitiveEvpnTypeRouterMac +from .snappi import BgpExtendedCommunityNonTransitive2OctetAsType +from .snappi import BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +from .snappi import BgpExtendedCommunityCustomType +from .snappi import BgpExtendedCommunityIter from .snappi import BgpV4RouteRangeIter from .snappi import BgpV6RouteRange from .snappi import BgpV6RouteRangeIter diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index b23f5308..d101c4c6 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.12.2 + version: 0.12.3 contact: url: https://github.com/open-traffic-generator/models license: @@ -3739,12 +3739,33 @@ components: pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global ext_communities: + x-status: + status: deprecated + information: This property is deprecated in favor of property extended_communities x-field-uid: 11 description: |- + Deprecated: This property is deprecated in favor of property extended_communities + + Deprecated: This property is deprecated in favor of property extended_communities + Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' + extended_communities: + x-field-uid: 12 + description: "Optional Extended Community settings. The Extended Communities\ + \ Attribute is a transitive optional BGP attribute, with the Type Code\ + \ 16. Community and Extended Communities attributes are utilized to trigger\ + \ routing decisions, such as acceptance, rejection, preference, or redistribution.\ + \ An extended community is an eight byte value. It is divided into two\ + \ main parts. The first two bytes of the community encode a type and sub-type\ + \ fields and the last six bytes carry a unique set of data in a format\ + \ defined by the type and sub-type field. Extended communities provide\ + \ a larger range for grouping or categorizing communities. " + type: array + items: + $ref: '#/components/schemas/Bgp.ExtendedCommunity' required: - name Bgp.AddPath: @@ -3759,6 +3780,417 @@ components: format: uint32 default: 1 x-field-uid: 1 + Bgp.ExtendedCommunity: + description: |- + The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first 2 Bytes of the community encode a type and optonal sub-type field. The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a format defined by the type and optional sub-type field. Extended communities provide a larger range for grouping or categorizing communities. + type: object + properties: + choice: + type: string + default: transitive_2octet_as_type + x-enum: + transitive_2octet_as_type: + x-field-uid: 1 + transitive_ipv4_address_type: + x-field-uid: 2 + transitive_4octet_as_type: + x-field-uid: 3 + transitive_opaque_type: + x-field-uid: 4 + transitive_evpn_type: + x-field-uid: 5 + non_transitive_2octet_as_type: + x-field-uid: 6 + custom: + x-field-uid: 7 + x-field-uid: 1 + enum: + - transitive_2octet_as_type + - transitive_ipv4_address_type + - transitive_4octet_as_type + - transitive_opaque_type + - transitive_evpn_type + - non_transitive_2octet_as_type + - custom + transitive_2octet_as_type: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType' + transitive_ipv4_address_type: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType' + transitive_4octet_as_type: + x-field-uid: 4 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType' + transitive_opaque_type: + x-field-uid: 5 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType' + transitive_evpn_type: + x-field-uid: 6 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType' + non_transitive_2octet_as_type: + x-field-uid: 7 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType' + custom: + x-field-uid: 8 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.CustomType' + Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02. " + type: object + properties: + global_2byte_as: + description: |- + The two octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + maximum: 65535 + default: 100 + x-field-uid: 1 + local_4byte_admin: + type: integer + format: uint32 + default: 1 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + type: object + properties: + global_2byte_as: + description: |- + The two octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + maximum: 65535 + default: 100 + x-field-uid: 1 + local_4byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive2OctetAsType: + description: "The Transitive Two-Octet AS-Specific Extended Community is sent\ + \ as type 0x00 . " + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin' + Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + type: object + properties: + global_ipv4_admin: + description: "An IPv4 unicast address assigned by one of the Internet registries.\ + \ " + type: string + format: ipv4 + default: 0.0.0.0 + x-field-uid: 1 + local_2byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + maximum: 65535 + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02. " + type: object + properties: + global_ipv4_admin: + description: "An IPv4 unicast address assigned by one of the Internet registries. " + type: string + format: ipv4 + default: 0.0.0.0 + x-field-uid: 1 + local_2byte_admin: + type: integer + format: uint32 + maximum: 65535 + default: 1 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveIpv4AddressType: + description: |- + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin' + Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02 " + type: object + properties: + global_4byte_as: + description: |- + The four octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + default: 100 + x-field-uid: 1 + local_2byte_admin: + type: integer + format: uint32 + default: 1 + maximum: 65535 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + type: object + properties: + global_4byte_as: + description: |- + The four octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + default: 100 + x-field-uid: 1 + local_2byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + maximum: 65535 + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive4OctetAsType: + description: "The Transitive Four-Octet AS-Specific Extended Community is sent\ + \ as type 0x02. It is defined in RFC 5668. " + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin' + Bgp.ExtendedCommunity.TransitiveOpaqueType.Color: + description: "The Color Community contains locally administrator defined 'color'\ + \ value which is used in conjunction with Encapsulation attribute to decide\ + \ whether a data packet can be transmitted on a certain tunnel or not. It\ + \ is defined in RFC9012 and sent with sub-type as 0x0b. " + type: object + properties: + flags: + description: "Two octet flag values. " + type: integer + format: uint32 + maximum: 65535 + default: 0 + x-field-uid: 1 + color: + type: integer + format: uint32 + default: 0 + description: "The color value is user defined and configured locally and\ + \ used to determine whether a data packet can be transmitted on a certain\ + \ tunnel or not in conjunction with the Encapsulation attribute. It is\ + \ defined in RFC9012. " + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation: + description: |- + This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + type: object + properties: + reserved: + description: "Four bytes of reserved values. Normally set to 0 on transmit\ + \ and ignored on receive. " + type: integer + format: uint32 + default: 0 + x-field-uid: 1 + tunnel_type: + description: "Identifies the type of tunneling technology being signalled.\ + \ Initially defined in RFC5512 and extended in RFC9012. Some of the important\ + \ tunnel types include 1 L2TPv3 over IP\t[RFC9012], \n2\tGRE\t[RFC9012]\n\ + 7\tIP in IP\t[RFC9012]\n8\tVXLAN Encapsulation\t[RFC8365]\n9\tNVGRE Encapsulation\t\ + [RFC8365]\n10\tMPLS Encapsulation\t[RFC8365]\n15\tSR TE Policy Type\t\ + [draft-ietf-idr-segment-routing-te-policy]\n19\tGeneve Encapsulation\t\ + [RFC8926]" + type: integer + format: uint32 + maximum: 65535 + default: 1 + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveOpaqueType: + description: |- + The Transitive Opaque Extended Community is sent as type 0x03. + type: object + properties: + choice: + type: string + default: color_subtype + x-enum: + color_subtype: + x-field-uid: 1 + encapsulation_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - color_subtype + - encapsulation_subtype + color_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Color' + encapsulation_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation' + Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac: + description: |- + The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + type: object + properties: + router_mac: + description: "MAC Address of the PE Router. " + type: string + format: mac + default: 0:0:0:0:0:0 + x-field-uid: 1 + Bgp.ExtendedCommunity.TransitiveEvpnType: + description: "The Transitive EVPN Extended Community is sent as type 0x06 .\ + \ " + type: object + properties: + choice: + type: string + default: router_mac_subtype + x-enum: + router_mac_subtype: + x-field-uid: 1 + x-field-uid: 1 + enum: + - router_mac_subtype + router_mac_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac' + Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth: + description: |- + The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + type: object + properties: + global_2byte_as: + description: |- + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. + type: integer + format: uint32 + default: 100 + maximum: 65535 + x-field-uid: 1 + bandwidth: + description: |- + Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) + type: number + format: float + default: 0 + x-field-uid: 2 + Bgp.ExtendedCommunity.NonTransitive2OctetAsType: + description: "The Non-Transitive Two-Octet AS-Specific Extended Community is\ + \ sent as type 0x40. " + type: object + properties: + choice: + type: string + default: link_bandwidth_subtype + x-enum: + link_bandwidth_subtype: + x-field-uid: 1 + x-field-uid: 1 + enum: + - link_bandwidth_subtype + link_bandwidth_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth' + Bgp.ExtendedCommunity.CustomType: + description: "Add a custom Extended Community with a combination of types ,\ + \ sub-types and values not explicitly specified above or not defined yet.\ + \ " + type: object + properties: + community_type: + description: "The type to be set in the Extended Community attribute. Accepts\ + \ hexadecimal input upto ff . " + type: string + format: hex + maxLength: 2 + default: '00' + x-field-uid: 1 + community_subtype: + description: |- + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + type: string + format: hex + maxLength: 2 + default: '00' + x-field-uid: 2 + value: + description: "6 byte hex value to be carried in the last 6 bytes of the\ + \ Extended Community. Accepts hexadecimal input upto ffffffffffff. \ + \ " + type: string + format: hex + maxLength: 12 + default: '000000000000' + x-field-uid: 3 Bgp.V6RouteRange: description: |- Emulated BGPv6 route range. @@ -3841,12 +4273,33 @@ components: pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global ext_communities: + x-status: + status: deprecated + information: This property is deprecated in favor of property extended_communities x-field-uid: 11 description: |- + Deprecated: This property is deprecated in favor of property extended_communities + + Deprecated: This property is deprecated in favor of property extended_communities + Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' + extended_communities: + x-field-uid: 12 + description: "Optional Extended Community settings. The Extended Communities\ + \ Attribute is a transitive optional BGP attribute, with the Type Code\ + \ 16. Community and Extended Communities attributes are utilized to trigger\ + \ routing decisions, such as acceptance, rejection, preference, or redistribution.\ + \ An extended community is an eight byte value. It is divided into two\ + \ main parts. The first two bytes of the community encode a type and sub-type\ + \ fields and the last six bytes carry a unique set of data in a format\ + \ defined by the type and sub-type field. Extended communities provide\ + \ a larger range for grouping or categorizing communities. " + type: array + items: + $ref: '#/components/schemas/Bgp.ExtendedCommunity' required: - name BgpSrte.V4Policy: diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index c2e8e1bb..a2cffcbf 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x82\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\x82\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\xbb\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xd4\x08\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12W\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsTypeH\x01\x88\x01\x01\x12]\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeH\x02\x88\x01\x01\x12W\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsTypeH\x03\x88\x01\x01\x12R\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueTypeH\x04\x88\x01\x01\x12N\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnTypeH\x05\x88\x01\x01\x12^\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeH\x06\x88\x01\x01\x12\x38\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomTypeH\x07\x88\x01\x01\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x1c\n\x1a_transitive_2octet_as_typeB\x1f\n\x1d_transitive_ipv4_address_typeB\x1c\n\x1a_transitive_4octet_as_typeB\x19\n\x17_transitive_opaque_typeB\x17\n\x15_transitive_evpn_typeB \n\x1e_non_transitive_2octet_as_typeB\t\n\x07_custom\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xdc\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12`\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTargetH\x01\x88\x01\x01\x12`\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xb2\x03\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12N\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColorH\x01\x88\x01\x01\x12^\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulationH\x02\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choiceB\x10\n\x0e_color_subtypeB\x18\n\x16_encapsulation_subtype\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\xaa\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12U\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMacH\x01\x88\x01\x01\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choiceB\x15\n\x13_router_mac_subtype\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xcf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x64\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidthH\x01\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choiceB\x19\n\x17_link_bandwidth_subtype\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\xbb\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'otg_pb2', globals()) @@ -328,115 +328,179 @@ _BGPLEARNEDINFORMATIONFILTER._serialized_start=23783 _BGPLEARNEDINFORMATIONFILTER._serialized_end=23928 _BGPV4ROUTERANGE._serialized_start=23931 - _BGPV4ROUTERANGE._serialized_end=24701 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=24436 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=24500 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPADDPATH._serialized_start=24703 - _BGPADDPATH._serialized_end=24749 - _BGPV6ROUTERANGE._serialized_start=24752 - _BGPV6ROUTERANGE._serialized_end=25522 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=24436 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=24500 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV4POLICY._serialized_start=25525 - _BGPSRTEV4POLICY._serialized_end=26432 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=24436 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=24500 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV4TUNNELTLV._serialized_start=26435 - _BGPSRTEV4TUNNELTLV._serialized_end=27202 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=27205 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=27523 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=27396 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=27456 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=24524 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=24567 - _BGPSRTECOLORSUBTLV._serialized_start=27525 - _BGPSRTECOLORSUBTLV._serialized_end=27575 - _BGPSRTEBINDINGSUBTLV._serialized_start=27578 - _BGPSRTEBINDINGSUBTLV._serialized_end=27940 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=27774 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=27865 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=27792 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=27865 - _BGPSRTEPREFERENCESUBTLV._serialized_start=27942 - _BGPSRTEPREFERENCESUBTLV._serialized_end=28007 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=28009 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=28088 - _BGPSRTEPOLICYNAMESUBTLV._serialized_start=28090 - _BGPSRTEPOLICYNAMESUBTLV._serialized_end=28157 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=28160 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=28502 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=28314 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=28471 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=28342 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=28471 - _BGPSRTESEGMENTLIST._serialized_start=28505 - _BGPSRTESEGMENTLIST._serialized_end=28642 - _BGPSRTESEGMENT._serialized_start=28645 - _BGPSRTESEGMENT._serialized_end=29645 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=29342 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=29513 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=29358 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=29513 - _BGPSRTESRMPLSSID._serialized_start=29648 - _BGPSRTESRMPLSSID._serialized_end=29776 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=29779 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=29981 - _BGPSRTESEGMENTATYPESUBTLV._serialized_start=29984 - _BGPSRTESEGMENTATYPESUBTLV._serialized_end=30151 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=30154 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=30350 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=30353 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=30546 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=30549 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=30742 - _BGPSRTESEGMENTETYPESUBTLV._serialized_start=30745 - _BGPSRTESEGMENTETYPESUBTLV._serialized_end=30950 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=30953 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=31132 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=31135 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=31438 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=31441 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=31620 - _BGPSRTESEGMENTITYPESUBTLV._serialized_start=31623 - _BGPSRTESEGMENTITYPESUBTLV._serialized_end=31864 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=31867 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=32306 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=32309 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=32624 - _BGPSRTEV6POLICY._serialized_start=32627 - _BGPSRTEV6POLICY._serialized_end=33533 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=24436 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=24500 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV6TUNNELTLV._serialized_start=33536 - _BGPSRTEV6TUNNELTLV._serialized_end=34303 - _BGPGRACEFULRESTART._serialized_start=34306 - _BGPGRACEFULRESTART._serialized_end=34490 - _BGPV6PEER._serialized_start=34493 - _BGPV6PEER._serialized_end=35415 + _BGPV4ROUTERANGE._serialized_end=24758 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=24493 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=24557 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPADDPATH._serialized_start=24760 + _BGPADDPATH._serialized_end=24806 + _BGPEXTENDEDCOMMUNITY._serialized_start=24809 + _BGPEXTENDEDCOMMUNITY._serialized_end=25917 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_start=25485 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_end=25716 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_start=25496 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_end=25716 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_start=25920 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_end=26079 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_start=26082 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_end=26241 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_start=26244 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_end=26708 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_start=26711 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_end=26877 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_start=26880 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_end=27046 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_start=27049 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_end=27525 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_start=27528 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_end=27687 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_start=27690 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_end=27849 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_start=27852 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_end=28316 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_start=28318 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_end=28425 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_start=28428 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_end=28561 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_start=28564 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_end=28998 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_start=28864 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_end=28943 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_start=28874 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_end=28943 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_start=29000 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_end=29089 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_start=29092 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_end=29390 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_start=29299 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_end=29356 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_start=29309 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_end=29356 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_start=29393 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_end=29541 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_start=29544 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_end=29879 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=29780 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=29841 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=29790 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=29841 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_start=29882 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_end=30046 + _BGPV6ROUTERANGE._serialized_start=30049 + _BGPV6ROUTERANGE._serialized_end=30876 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=24493 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=24557 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV4POLICY._serialized_start=30879 + _BGPSRTEV4POLICY._serialized_end=31786 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=24493 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=24557 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV4TUNNELTLV._serialized_start=31789 + _BGPSRTEV4TUNNELTLV._serialized_end=32556 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=32559 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=32877 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=32750 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=32810 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=24581 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=24624 + _BGPSRTECOLORSUBTLV._serialized_start=32879 + _BGPSRTECOLORSUBTLV._serialized_end=32929 + _BGPSRTEBINDINGSUBTLV._serialized_start=32932 + _BGPSRTEBINDINGSUBTLV._serialized_end=33294 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=33128 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=33219 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=33146 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=33219 + _BGPSRTEPREFERENCESUBTLV._serialized_start=33296 + _BGPSRTEPREFERENCESUBTLV._serialized_end=33361 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=33363 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=33442 + _BGPSRTEPOLICYNAMESUBTLV._serialized_start=33444 + _BGPSRTEPOLICYNAMESUBTLV._serialized_end=33511 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=33514 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=33856 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=33668 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=33825 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=33696 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=33825 + _BGPSRTESEGMENTLIST._serialized_start=33859 + _BGPSRTESEGMENTLIST._serialized_end=33996 + _BGPSRTESEGMENT._serialized_start=33999 + _BGPSRTESEGMENT._serialized_end=34999 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=34696 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=34867 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=34712 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=34867 + _BGPSRTESRMPLSSID._serialized_start=35002 + _BGPSRTESRMPLSSID._serialized_end=35130 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=35133 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=35335 + _BGPSRTESEGMENTATYPESUBTLV._serialized_start=35338 + _BGPSRTESEGMENTATYPESUBTLV._serialized_end=35505 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=35508 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=35704 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=35707 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=35900 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=35903 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=36096 + _BGPSRTESEGMENTETYPESUBTLV._serialized_start=36099 + _BGPSRTESEGMENTETYPESUBTLV._serialized_end=36304 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=36307 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=36486 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=36489 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=36792 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=36795 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=36974 + _BGPSRTESEGMENTITYPESUBTLV._serialized_start=36977 + _BGPSRTESEGMENTITYPESUBTLV._serialized_end=37218 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=37221 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=37660 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=37663 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=37978 + _BGPSRTEV6POLICY._serialized_start=37981 + _BGPSRTEV6POLICY._serialized_end=38887 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=24493 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=24557 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV6TUNNELTLV._serialized_start=38890 + _BGPSRTEV6TUNNELTLV._serialized_end=39657 + _BGPGRACEFULRESTART._serialized_start=39660 + _BGPGRACEFULRESTART._serialized_end=39844 + _BGPV6PEER._serialized_start=39847 + _BGPV6PEER._serialized_end=40769 _BGPV6PEER_ASTYPE._serialized_start=17279 _BGPV6PEER_ASTYPE._serialized_end=17332 _BGPV6PEER_ASTYPE_ENUM._serialized_start=17289 @@ -445,734 +509,734 @@ _BGPV6PEER_ASNUMBERWIDTH._serialized_end=17393 _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_start=17351 _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_end=17393 - _BGPV6INTERFACE._serialized_start=35417 - _BGPV6INTERFACE._serialized_end=35483 - _BGPV6SEGMENTROUTING._serialized_start=35486 - _BGPV6SEGMENTROUTING._serialized_end=35983 - _BGPV6ETHERNETSEGMENT._serialized_start=35986 - _BGPV6ETHERNETSEGMENT._serialized_end=36538 + _BGPV6INTERFACE._serialized_start=40771 + _BGPV6INTERFACE._serialized_end=40837 + _BGPV6SEGMENTROUTING._serialized_start=40840 + _BGPV6SEGMENTROUTING._serialized_end=41337 + _BGPV6ETHERNETSEGMENT._serialized_start=41340 + _BGPV6ETHERNETSEGMENT._serialized_end=41892 _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17965 _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_end=18037 _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17979 _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=18037 - _BGPV6EVPNEVIS._serialized_start=36541 - _BGPV6EVPNEVIS._serialized_end=36728 + _BGPV6EVPNEVIS._serialized_start=41895 + _BGPV6EVPNEVIS._serialized_end=42082 _BGPV6EVPNEVIS_CHOICE._serialized_start=20111 _BGPV6EVPNEVIS_CHOICE._serialized_end=20159 _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_start=20121 _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_end=20159 - _BGPV6EVIVXLAN._serialized_start=36731 - _BGPV6EVIVXLAN._serialized_end=37534 + _BGPV6EVIVXLAN._serialized_start=42085 + _BGPV6EVIVXLAN._serialized_end=42888 _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_start=20825 _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_end=20892 _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20844 _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20892 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=37537 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=37717 - _DEVICEVXLAN._serialized_start=37719 - _DEVICEVXLAN._serialized_end=37812 - _VXLANV4TUNNEL._serialized_start=37815 - _VXLANV4TUNNEL._serialized_end=37978 - _VXLANV6TUNNEL._serialized_start=37981 - _VXLANV6TUNNEL._serialized_end=38144 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=38147 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=38485 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=38387 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=38448 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=38397 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=38448 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=38488 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=38826 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=38387 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=38448 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=38397 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=38448 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=38828 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=38930 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=38932 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=39034 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=39037 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=39187 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=39190 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=39383 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=39386 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=39579 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=39581 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=39656 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=39658 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=39733 - _DEVICERSVP._serialized_start=39736 - _DEVICERSVP._serialized_end=39881 - _RSVPIPV4INTERFACE._serialized_start=39884 - _RSVPIPV4INTERFACE._serialized_end=40425 - _RSVPLSPIPV4INTERFACE._serialized_start=40428 - _RSVPLSPIPV4INTERFACE._serialized_end=40647 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=40650 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=41133 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=40930 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=41022 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=40950 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=41022 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=41136 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=41730 - _RSVPSESSIONATTRIBUTE._serialized_start=41733 - _RSVPSESSIONATTRIBUTE._serialized_end=42386 - _RSVPRESOURCEAFFINITIES._serialized_start=42389 - _RSVPRESOURCEAFFINITIES._serialized_end=42539 - _RSVPTSPEC._serialized_start=42542 - _RSVPTSPEC._serialized_end=42829 - _RSVPFASTREROUTE._serialized_start=42832 - _RSVPFASTREROUTE._serialized_end=43287 - _RSVPERO._serialized_start=43290 - _RSVPERO._serialized_end=43586 - _RSVPERO_PREPENDNEIGHBORIP._serialized_start=43443 - _RSVPERO_PREPENDNEIGHBORIP._serialized_end=43544 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=43464 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=43544 - _RSVPEROSUBOBJECT._serialized_start=43589 - _RSVPEROSUBOBJECT._serialized_end=43985 - _RSVPEROSUBOBJECT_TYPE._serialized_start=43799 - _RSVPEROSUBOBJECT_TYPE._serialized_end=43855 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=43807 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=43855 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=43857 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=43914 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=43868 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=43914 - _FLOW._serialized_start=43988 - _FLOW._serialized_end=44304 - _FLOWTXRX._serialized_start=44307 - _FLOWTXRX._serialized_end=44525 - _FLOWTXRX_CHOICE._serialized_start=44439 - _FLOWTXRX_CHOICE._serialized_end=44494 - _FLOWTXRX_CHOICE_ENUM._serialized_start=44449 - _FLOWTXRX_CHOICE_ENUM._serialized_end=44494 - _FLOWPORT._serialized_start=44527 - _FLOWPORT._serialized_end=44606 - _FLOWROUTER._serialized_start=44609 - _FLOWROUTER._serialized_end=44771 - _FLOWROUTER_MODE._serialized_start=44705 - _FLOWROUTER_MODE._serialized_end=44762 - _FLOWROUTER_MODE_ENUM._serialized_start=44713 - _FLOWROUTER_MODE_ENUM._serialized_end=44762 - _FLOWHEADER._serialized_start=44774 - _FLOWHEADER._serialized_end=45975 - _FLOWHEADER_CHOICE._serialized_start=45527 - _FLOWHEADER_CHOICE._serialized_end=45772 - _FLOWHEADER_CHOICE_ENUM._serialized_start=45538 - _FLOWHEADER_CHOICE_ENUM._serialized_end=45772 - _FLOWCUSTOM._serialized_start=45977 - _FLOWCUSTOM._serialized_end=46051 - _FLOWCUSTOMMETRICTAG._serialized_start=46053 - _FLOWCUSTOMMETRICTAG._serialized_end=46152 - _FLOWETHERNET._serialized_start=46155 - _FLOWETHERNET._serialized_end=46426 - _FLOWVLAN._serialized_start=46429 - _FLOWVLAN._serialized_end=46658 - _FLOWVXLAN._serialized_start=46661 - _FLOWVXLAN._serialized_end=46922 - _FLOWIPV4._serialized_start=46925 - _FLOWIPV4._serialized_end=47943 - _FLOWIPV4PRIORITY._serialized_start=47946 - _FLOWIPV4PRIORITY._serialized_end=48244 - _FLOWIPV4PRIORITY_CHOICE._serialized_start=48147 - _FLOWIPV4PRIORITY_CHOICE._serialized_end=48208 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=48157 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=48208 - _FLOWIPV4DSCP._serialized_start=48246 - _FLOWIPV4DSCP._serialized_end=48370 - _FLOWIPV4TOS._serialized_start=48373 - _FLOWIPV4TOS._serialized_end=48806 - _FLOWIPV6._serialized_start=48809 - _FLOWIPV6._serialized_end=49360 - _FLOWPFCPAUSE._serialized_start=49363 - _FLOWPFCPAUSE._serialized_end=50416 - _FLOWETHERNETPAUSE._serialized_start=50419 - _FLOWETHERNETPAUSE._serialized_end=50795 - _FLOWTCP._serialized_start=50798 - _FLOWTCP._serialized_end=51738 - _FLOWUDP._serialized_start=51741 - _FLOWUDP._serialized_end=52002 - _FLOWGRE._serialized_start=52005 - _FLOWGRE._serialized_end=52430 - _FLOWGTPV1._serialized_start=52433 - _FLOWGTPV1._serialized_end=53385 - _FLOWGTPEXTENSION._serialized_start=53388 - _FLOWGTPEXTENSION._serialized_end=53688 - _FLOWGTPV2._serialized_start=53691 - _FLOWGTPV2._serialized_end=54354 - _FLOWARP._serialized_start=54357 - _FLOWARP._serialized_end=55158 - _FLOWICMP._serialized_start=55161 - _FLOWICMP._serialized_end=55322 - _FLOWICMP_CHOICE._serialized_start=55259 - _FLOWICMP_CHOICE._serialized_end=55302 - _FLOWICMP_CHOICE_ENUM._serialized_start=55269 - _FLOWICMP_CHOICE_ENUM._serialized_end=55302 - _FLOWICMPECHO._serialized_start=55325 - _FLOWICMPECHO._serialized_end=55691 - _FLOWICMPV6._serialized_start=55694 - _FLOWICMPV6._serialized_end=55861 - _FLOWICMPV6_CHOICE._serialized_start=55259 - _FLOWICMPV6_CHOICE._serialized_end=55302 - _FLOWICMPV6_CHOICE_ENUM._serialized_start=55269 - _FLOWICMPV6_CHOICE_ENUM._serialized_end=55302 - _FLOWICMPV6ECHO._serialized_start=55864 - _FLOWICMPV6ECHO._serialized_end=56242 - _FLOWPPP._serialized_start=56245 - _FLOWPPP._serialized_end=56457 - _FLOWIGMPV1._serialized_start=56460 - _FLOWIGMPV1._serialized_end=56805 - _FLOWMPLS._serialized_start=56808 - _FLOWMPLS._serialized_end=57116 - _FLOWSIZE._serialized_start=57119 - _FLOWSIZE._serialized_end=57494 - _FLOWSIZE_CHOICE._serialized_start=57342 - _FLOWSIZE_CHOICE._serialized_end=57431 - _FLOWSIZE_CHOICE_ENUM._serialized_start=57352 - _FLOWSIZE_CHOICE_ENUM._serialized_end=57431 - _FLOWSIZEINCREMENT._serialized_start=57496 - _FLOWSIZEINCREMENT._serialized_end=57599 - _FLOWSIZERANDOM._serialized_start=57601 - _FLOWSIZERANDOM._serialized_end=57669 - _FLOWSIZEWEIGHTPAIRS._serialized_start=57672 - _FLOWSIZEWEIGHTPAIRS._serialized_end=58069 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=57869 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=57930 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=57879 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=57930 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=57932 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=58043 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=57946 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=58043 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=58071 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=58158 - _FLOWRATE._serialized_start=58161 - _FLOWRATE._serialized_end=58505 - _FLOWRATE_CHOICE._serialized_start=58339 - _FLOWRATE_CHOICE._serialized_end=58436 - _FLOWRATE_CHOICE_ENUM._serialized_start=58349 - _FLOWRATE_CHOICE_ENUM._serialized_end=58436 - _FLOWDURATION._serialized_start=58508 - _FLOWDURATION._serialized_end=58930 - _FLOWDURATION_CHOICE._serialized_start=58760 - _FLOWDURATION_CHOICE._serialized_end=58858 - _FLOWDURATION_CHOICE_ENUM._serialized_start=58770 - _FLOWDURATION_CHOICE_ENUM._serialized_end=58858 - _FLOWCONTINUOUS._serialized_start=58932 - _FLOWCONTINUOUS._serialized_end=59020 - _FLOWDELAY._serialized_start=59023 - _FLOWDELAY._serialized_end=59291 - _FLOWDELAY_CHOICE._serialized_start=59158 - _FLOWDELAY_CHOICE._serialized_end=59237 - _FLOWDELAY_CHOICE_ENUM._serialized_start=59168 - _FLOWDELAY_CHOICE_ENUM._serialized_end=59237 - _FLOWFIXEDPACKETS._serialized_start=59293 - _FLOWFIXEDPACKETS._serialized_end=59417 - _FLOWFIXEDSECONDS._serialized_start=59419 - _FLOWFIXEDSECONDS._serialized_end=59543 - _FLOWBURST._serialized_start=59546 - _FLOWBURST._serialized_end=59731 - _FLOWDURATIONINTERBURSTGAP._serialized_start=59734 - _FLOWDURATIONINTERBURSTGAP._serialized_end=60034 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=59158 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=59237 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=59168 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=59237 - _FLOWMETRICS._serialized_start=60037 - _FLOWMETRICS._serialized_end=60360 - _FLOWLATENCYMETRICS._serialized_start=60363 - _FLOWLATENCYMETRICS._serialized_end=60547 - _FLOWLATENCYMETRICS_MODE._serialized_start=60460 - _FLOWLATENCYMETRICS_MODE._serialized_end=60527 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=60468 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=60527 - _FLOWPREDEFINEDTAGS._serialized_start=60549 - _FLOWPREDEFINEDTAGS._serialized_end=60603 - _FLOWRXTXRATIO._serialized_start=60606 - _FLOWRXTXRATIO._serialized_end=60838 - _FLOWRXTXRATIO_CHOICE._serialized_start=60746 - _FLOWRXTXRATIO_CHOICE._serialized_end=60804 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=60756 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=60804 - _FLOWRXTXRATIORXCOUNT._serialized_start=60840 - _FLOWRXTXRATIORXCOUNT._serialized_end=60862 - _EVENT._serialized_start=60865 - _EVENT._serialized_end=61131 - _EVENTRXRATETHRESHOLD._serialized_start=61133 - _EVENTRXRATETHRESHOLD._serialized_end=61225 - _EVENTLINK._serialized_start=61227 - _EVENTLINK._serialized_end=61270 - _EVENTROUTEADVERTISEWITHDRAW._serialized_start=61272 - _EVENTROUTEADVERTISEWITHDRAW._serialized_end=61333 - _EVENTREQUEST._serialized_start=61336 - _EVENTREQUEST._serialized_end=61581 - _EVENTREQUEST_TYPE._serialized_start=61412 - _EVENTREQUEST_TYPE._serialized_end=61581 - _EVENTREQUEST_TYPE_ENUM._serialized_start=61421 - _EVENTREQUEST_TYPE_ENUM._serialized_end=61581 - _EVENTSUBSCRIPTION._serialized_start=61583 - _EVENTSUBSCRIPTION._serialized_end=61697 - _LLDP._serialized_start=61700 - _LLDP._serialized_end=62037 - _LLDPCONNECTION._serialized_start=62040 - _LLDPCONNECTION._serialized_end=62209 - _LLDPCONNECTION_CHOICE._serialized_start=62136 - _LLDPCONNECTION_CHOICE._serialized_end=62184 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=42891 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=43071 + _DEVICEVXLAN._serialized_start=43073 + _DEVICEVXLAN._serialized_end=43166 + _VXLANV4TUNNEL._serialized_start=43169 + _VXLANV4TUNNEL._serialized_end=43332 + _VXLANV6TUNNEL._serialized_start=43335 + _VXLANV6TUNNEL._serialized_end=43498 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=43501 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=43839 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=43842 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=44180 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44182 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44284 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44286 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44388 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=44391 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=44541 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44544 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44737 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44740 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44933 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=44935 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45010 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=45012 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45087 + _DEVICERSVP._serialized_start=45090 + _DEVICERSVP._serialized_end=45235 + _RSVPIPV4INTERFACE._serialized_start=45238 + _RSVPIPV4INTERFACE._serialized_end=45779 + _RSVPLSPIPV4INTERFACE._serialized_start=45782 + _RSVPLSPIPV4INTERFACE._serialized_end=46001 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=46004 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=46487 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=46284 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=46376 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=46304 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=46376 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=46490 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=47084 + _RSVPSESSIONATTRIBUTE._serialized_start=47087 + _RSVPSESSIONATTRIBUTE._serialized_end=47740 + _RSVPRESOURCEAFFINITIES._serialized_start=47743 + _RSVPRESOURCEAFFINITIES._serialized_end=47893 + _RSVPTSPEC._serialized_start=47896 + _RSVPTSPEC._serialized_end=48183 + _RSVPFASTREROUTE._serialized_start=48186 + _RSVPFASTREROUTE._serialized_end=48641 + _RSVPERO._serialized_start=48644 + _RSVPERO._serialized_end=48940 + _RSVPERO_PREPENDNEIGHBORIP._serialized_start=48797 + _RSVPERO_PREPENDNEIGHBORIP._serialized_end=48898 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=48818 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=48898 + _RSVPEROSUBOBJECT._serialized_start=48943 + _RSVPEROSUBOBJECT._serialized_end=49339 + _RSVPEROSUBOBJECT_TYPE._serialized_start=49153 + _RSVPEROSUBOBJECT_TYPE._serialized_end=49209 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=49161 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=49209 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=49211 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=49268 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=49222 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=49268 + _FLOW._serialized_start=49342 + _FLOW._serialized_end=49658 + _FLOWTXRX._serialized_start=49661 + _FLOWTXRX._serialized_end=49879 + _FLOWTXRX_CHOICE._serialized_start=49793 + _FLOWTXRX_CHOICE._serialized_end=49848 + _FLOWTXRX_CHOICE_ENUM._serialized_start=49803 + _FLOWTXRX_CHOICE_ENUM._serialized_end=49848 + _FLOWPORT._serialized_start=49881 + _FLOWPORT._serialized_end=49960 + _FLOWROUTER._serialized_start=49963 + _FLOWROUTER._serialized_end=50125 + _FLOWROUTER_MODE._serialized_start=50059 + _FLOWROUTER_MODE._serialized_end=50116 + _FLOWROUTER_MODE_ENUM._serialized_start=50067 + _FLOWROUTER_MODE_ENUM._serialized_end=50116 + _FLOWHEADER._serialized_start=50128 + _FLOWHEADER._serialized_end=51329 + _FLOWHEADER_CHOICE._serialized_start=50881 + _FLOWHEADER_CHOICE._serialized_end=51126 + _FLOWHEADER_CHOICE_ENUM._serialized_start=50892 + _FLOWHEADER_CHOICE_ENUM._serialized_end=51126 + _FLOWCUSTOM._serialized_start=51331 + _FLOWCUSTOM._serialized_end=51405 + _FLOWCUSTOMMETRICTAG._serialized_start=51407 + _FLOWCUSTOMMETRICTAG._serialized_end=51506 + _FLOWETHERNET._serialized_start=51509 + _FLOWETHERNET._serialized_end=51780 + _FLOWVLAN._serialized_start=51783 + _FLOWVLAN._serialized_end=52012 + _FLOWVXLAN._serialized_start=52015 + _FLOWVXLAN._serialized_end=52276 + _FLOWIPV4._serialized_start=52279 + _FLOWIPV4._serialized_end=53297 + _FLOWIPV4PRIORITY._serialized_start=53300 + _FLOWIPV4PRIORITY._serialized_end=53598 + _FLOWIPV4PRIORITY_CHOICE._serialized_start=53501 + _FLOWIPV4PRIORITY_CHOICE._serialized_end=53562 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=53511 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=53562 + _FLOWIPV4DSCP._serialized_start=53600 + _FLOWIPV4DSCP._serialized_end=53724 + _FLOWIPV4TOS._serialized_start=53727 + _FLOWIPV4TOS._serialized_end=54160 + _FLOWIPV6._serialized_start=54163 + _FLOWIPV6._serialized_end=54714 + _FLOWPFCPAUSE._serialized_start=54717 + _FLOWPFCPAUSE._serialized_end=55770 + _FLOWETHERNETPAUSE._serialized_start=55773 + _FLOWETHERNETPAUSE._serialized_end=56149 + _FLOWTCP._serialized_start=56152 + _FLOWTCP._serialized_end=57092 + _FLOWUDP._serialized_start=57095 + _FLOWUDP._serialized_end=57356 + _FLOWGRE._serialized_start=57359 + _FLOWGRE._serialized_end=57784 + _FLOWGTPV1._serialized_start=57787 + _FLOWGTPV1._serialized_end=58739 + _FLOWGTPEXTENSION._serialized_start=58742 + _FLOWGTPEXTENSION._serialized_end=59042 + _FLOWGTPV2._serialized_start=59045 + _FLOWGTPV2._serialized_end=59708 + _FLOWARP._serialized_start=59711 + _FLOWARP._serialized_end=60512 + _FLOWICMP._serialized_start=60515 + _FLOWICMP._serialized_end=60676 + _FLOWICMP_CHOICE._serialized_start=60613 + _FLOWICMP_CHOICE._serialized_end=60656 + _FLOWICMP_CHOICE_ENUM._serialized_start=60623 + _FLOWICMP_CHOICE_ENUM._serialized_end=60656 + _FLOWICMPECHO._serialized_start=60679 + _FLOWICMPECHO._serialized_end=61045 + _FLOWICMPV6._serialized_start=61048 + _FLOWICMPV6._serialized_end=61215 + _FLOWICMPV6_CHOICE._serialized_start=60613 + _FLOWICMPV6_CHOICE._serialized_end=60656 + _FLOWICMPV6_CHOICE_ENUM._serialized_start=60623 + _FLOWICMPV6_CHOICE_ENUM._serialized_end=60656 + _FLOWICMPV6ECHO._serialized_start=61218 + _FLOWICMPV6ECHO._serialized_end=61596 + _FLOWPPP._serialized_start=61599 + _FLOWPPP._serialized_end=61811 + _FLOWIGMPV1._serialized_start=61814 + _FLOWIGMPV1._serialized_end=62159 + _FLOWMPLS._serialized_start=62162 + _FLOWMPLS._serialized_end=62470 + _FLOWSIZE._serialized_start=62473 + _FLOWSIZE._serialized_end=62848 + _FLOWSIZE_CHOICE._serialized_start=62696 + _FLOWSIZE_CHOICE._serialized_end=62785 + _FLOWSIZE_CHOICE_ENUM._serialized_start=62706 + _FLOWSIZE_CHOICE_ENUM._serialized_end=62785 + _FLOWSIZEINCREMENT._serialized_start=62850 + _FLOWSIZEINCREMENT._serialized_end=62953 + _FLOWSIZERANDOM._serialized_start=62955 + _FLOWSIZERANDOM._serialized_end=63023 + _FLOWSIZEWEIGHTPAIRS._serialized_start=63026 + _FLOWSIZEWEIGHTPAIRS._serialized_end=63423 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=63223 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=63284 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=63233 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=63284 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=63286 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=63397 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=63300 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=63397 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=63425 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=63512 + _FLOWRATE._serialized_start=63515 + _FLOWRATE._serialized_end=63859 + _FLOWRATE_CHOICE._serialized_start=63693 + _FLOWRATE_CHOICE._serialized_end=63790 + _FLOWRATE_CHOICE_ENUM._serialized_start=63703 + _FLOWRATE_CHOICE_ENUM._serialized_end=63790 + _FLOWDURATION._serialized_start=63862 + _FLOWDURATION._serialized_end=64284 + _FLOWDURATION_CHOICE._serialized_start=64114 + _FLOWDURATION_CHOICE._serialized_end=64212 + _FLOWDURATION_CHOICE_ENUM._serialized_start=64124 + _FLOWDURATION_CHOICE_ENUM._serialized_end=64212 + _FLOWCONTINUOUS._serialized_start=64286 + _FLOWCONTINUOUS._serialized_end=64374 + _FLOWDELAY._serialized_start=64377 + _FLOWDELAY._serialized_end=64645 + _FLOWDELAY_CHOICE._serialized_start=64512 + _FLOWDELAY_CHOICE._serialized_end=64591 + _FLOWDELAY_CHOICE_ENUM._serialized_start=64522 + _FLOWDELAY_CHOICE_ENUM._serialized_end=64591 + _FLOWFIXEDPACKETS._serialized_start=64647 + _FLOWFIXEDPACKETS._serialized_end=64771 + _FLOWFIXEDSECONDS._serialized_start=64773 + _FLOWFIXEDSECONDS._serialized_end=64897 + _FLOWBURST._serialized_start=64900 + _FLOWBURST._serialized_end=65085 + _FLOWDURATIONINTERBURSTGAP._serialized_start=65088 + _FLOWDURATIONINTERBURSTGAP._serialized_end=65388 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=64512 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=64591 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=64522 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=64591 + _FLOWMETRICS._serialized_start=65391 + _FLOWMETRICS._serialized_end=65714 + _FLOWLATENCYMETRICS._serialized_start=65717 + _FLOWLATENCYMETRICS._serialized_end=65901 + _FLOWLATENCYMETRICS_MODE._serialized_start=65814 + _FLOWLATENCYMETRICS_MODE._serialized_end=65881 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=65822 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=65881 + _FLOWPREDEFINEDTAGS._serialized_start=65903 + _FLOWPREDEFINEDTAGS._serialized_end=65957 + _FLOWRXTXRATIO._serialized_start=65960 + _FLOWRXTXRATIO._serialized_end=66192 + _FLOWRXTXRATIO_CHOICE._serialized_start=66100 + _FLOWRXTXRATIO_CHOICE._serialized_end=66158 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=66110 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=66158 + _FLOWRXTXRATIORXCOUNT._serialized_start=66194 + _FLOWRXTXRATIORXCOUNT._serialized_end=66216 + _EVENT._serialized_start=66219 + _EVENT._serialized_end=66485 + _EVENTRXRATETHRESHOLD._serialized_start=66487 + _EVENTRXRATETHRESHOLD._serialized_end=66579 + _EVENTLINK._serialized_start=66581 + _EVENTLINK._serialized_end=66624 + _EVENTROUTEADVERTISEWITHDRAW._serialized_start=66626 + _EVENTROUTEADVERTISEWITHDRAW._serialized_end=66687 + _EVENTREQUEST._serialized_start=66690 + _EVENTREQUEST._serialized_end=66935 + _EVENTREQUEST_TYPE._serialized_start=66766 + _EVENTREQUEST_TYPE._serialized_end=66935 + _EVENTREQUEST_TYPE_ENUM._serialized_start=66775 + _EVENTREQUEST_TYPE_ENUM._serialized_end=66935 + _EVENTSUBSCRIPTION._serialized_start=66937 + _EVENTSUBSCRIPTION._serialized_end=67051 + _LLDP._serialized_start=67054 + _LLDP._serialized_end=67391 + _LLDPCONNECTION._serialized_start=67394 + _LLDPCONNECTION._serialized_end=67563 + _LLDPCONNECTION_CHOICE._serialized_start=67490 + _LLDPCONNECTION_CHOICE._serialized_end=67538 _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2320 _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2358 - _LLDPCHASSISID._serialized_start=62212 - _LLDPCHASSISID._serialized_end=62594 - _LLDPCHASSISID_CHOICE._serialized_start=62409 - _LLDPCHASSISID_CHOICE._serialized_end=62514 - _LLDPCHASSISID_CHOICE_ENUM._serialized_start=62419 - _LLDPCHASSISID_CHOICE_ENUM._serialized_end=62514 - _LLDPPORTID._serialized_start=62597 - _LLDPPORTID._serialized_end=62980 - _LLDPPORTID_CHOICE._serialized_start=62409 - _LLDPPORTID_CHOICE._serialized_end=62514 - _LLDPPORTID_CHOICE_ENUM._serialized_start=62419 - _LLDPPORTID_CHOICE_ENUM._serialized_end=62514 - _LLDPCHASSISMACSUBTYPE._serialized_start=62983 - _LLDPCHASSISMACSUBTYPE._serialized_end=63192 + _LLDPCHASSISID._serialized_start=67566 + _LLDPCHASSISID._serialized_end=67948 + _LLDPCHASSISID_CHOICE._serialized_start=67763 + _LLDPCHASSISID_CHOICE._serialized_end=67868 + _LLDPCHASSISID_CHOICE_ENUM._serialized_start=67773 + _LLDPCHASSISID_CHOICE_ENUM._serialized_end=67868 + _LLDPPORTID._serialized_start=67951 + _LLDPPORTID._serialized_end=68334 + _LLDPPORTID_CHOICE._serialized_start=67763 + _LLDPPORTID_CHOICE._serialized_end=67868 + _LLDPPORTID_CHOICE_ENUM._serialized_start=67773 + _LLDPPORTID_CHOICE_ENUM._serialized_end=67868 + _LLDPCHASSISMACSUBTYPE._serialized_start=68337 + _LLDPCHASSISMACSUBTYPE._serialized_end=68546 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3051 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3105 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3061 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=63195 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=63418 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=68549 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=68772 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3051 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3105 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3061 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPSYSTEMNAME._serialized_start=63421 - _LLDPSYSTEMNAME._serialized_end=63616 + _LLDPSYSTEMNAME._serialized_start=68775 + _LLDPSYSTEMNAME._serialized_end=68970 _LLDPSYSTEMNAME_CHOICE._serialized_start=3051 _LLDPSYSTEMNAME_CHOICE._serialized_end=3105 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3061 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3105 - _ERROR._serialized_start=63619 - _ERROR._serialized_end=63769 - _ERROR_KIND._serialized_start=63699 - _ERROR_KIND._serialized_end=63760 - _ERROR_KIND_ENUM._serialized_start=63707 - _ERROR_KIND_ENUM._serialized_end=63760 - _WARNING._serialized_start=63771 - _WARNING._serialized_end=63798 - _CONFIGUPDATE._serialized_start=63801 - _CONFIGUPDATE._serialized_end=63972 - _CONFIGUPDATE_CHOICE._serialized_start=63907 - _CONFIGUPDATE_CHOICE._serialized_end=63951 - _CONFIGUPDATE_CHOICE_ENUM._serialized_start=63917 - _CONFIGUPDATE_CHOICE_ENUM._serialized_end=63951 - _FLOWSUPDATE._serialized_start=63975 - _FLOWSUPDATE._serialized_end=64137 - _FLOWSUPDATE_PROPERTYNAMES._serialized_start=64077 - _FLOWSUPDATE_PROPERTYNAMES._serialized_end=64137 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=64094 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=64137 - _CONTROLSTATE._serialized_start=64140 - _CONTROLSTATE._serialized_end=64426 - _CONTROLSTATE_CHOICE._serialized_start=64322 - _CONTROLSTATE_CHOICE._serialized_end=64392 - _CONTROLSTATE_CHOICE_ENUM._serialized_start=64332 - _CONTROLSTATE_CHOICE_ENUM._serialized_end=64392 - _STATEPORT._serialized_start=64429 - _STATEPORT._serialized_end=64647 - _STATEPORT_CHOICE._serialized_start=64570 - _STATEPORT_CHOICE._serialized_end=64626 - _STATEPORT_CHOICE_ENUM._serialized_start=64580 - _STATEPORT_CHOICE_ENUM._serialized_end=64626 - _STATETRAFFIC._serialized_start=64650 - _STATETRAFFIC._serialized_end=64842 - _STATETRAFFIC_CHOICE._serialized_start=64772 - _STATETRAFFIC_CHOICE._serialized_end=64824 - _STATETRAFFIC_CHOICE_ENUM._serialized_start=64782 - _STATETRAFFIC_CHOICE_ENUM._serialized_end=64824 - _STATEPROTOCOL._serialized_start=64845 - _STATEPROTOCOL._serialized_end=65129 - _STATEPROTOCOL_CHOICE._serialized_start=65039 - _STATEPROTOCOL_CHOICE._serialized_end=65102 - _STATEPROTOCOL_CHOICE_ENUM._serialized_start=65049 - _STATEPROTOCOL_CHOICE_ENUM._serialized_end=65102 - _STATEPORTLINK._serialized_start=65132 - _STATEPORTLINK._serialized_end=65265 - _STATEPORTLINK_STATE._serialized_start=65215 - _STATEPORTLINK_STATE._serialized_end=65265 + _ERROR._serialized_start=68973 + _ERROR._serialized_end=69123 + _ERROR_KIND._serialized_start=69053 + _ERROR_KIND._serialized_end=69114 + _ERROR_KIND_ENUM._serialized_start=69061 + _ERROR_KIND_ENUM._serialized_end=69114 + _WARNING._serialized_start=69125 + _WARNING._serialized_end=69152 + _CONFIGUPDATE._serialized_start=69155 + _CONFIGUPDATE._serialized_end=69326 + _CONFIGUPDATE_CHOICE._serialized_start=69261 + _CONFIGUPDATE_CHOICE._serialized_end=69305 + _CONFIGUPDATE_CHOICE_ENUM._serialized_start=69271 + _CONFIGUPDATE_CHOICE_ENUM._serialized_end=69305 + _FLOWSUPDATE._serialized_start=69329 + _FLOWSUPDATE._serialized_end=69491 + _FLOWSUPDATE_PROPERTYNAMES._serialized_start=69431 + _FLOWSUPDATE_PROPERTYNAMES._serialized_end=69491 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=69448 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=69491 + _CONTROLSTATE._serialized_start=69494 + _CONTROLSTATE._serialized_end=69780 + _CONTROLSTATE_CHOICE._serialized_start=69676 + _CONTROLSTATE_CHOICE._serialized_end=69746 + _CONTROLSTATE_CHOICE_ENUM._serialized_start=69686 + _CONTROLSTATE_CHOICE_ENUM._serialized_end=69746 + _STATEPORT._serialized_start=69783 + _STATEPORT._serialized_end=70001 + _STATEPORT_CHOICE._serialized_start=69924 + _STATEPORT_CHOICE._serialized_end=69980 + _STATEPORT_CHOICE_ENUM._serialized_start=69934 + _STATEPORT_CHOICE_ENUM._serialized_end=69980 + _STATETRAFFIC._serialized_start=70004 + _STATETRAFFIC._serialized_end=70196 + _STATETRAFFIC_CHOICE._serialized_start=70126 + _STATETRAFFIC_CHOICE._serialized_end=70178 + _STATETRAFFIC_CHOICE_ENUM._serialized_start=70136 + _STATETRAFFIC_CHOICE_ENUM._serialized_end=70178 + _STATEPROTOCOL._serialized_start=70199 + _STATEPROTOCOL._serialized_end=70483 + _STATEPROTOCOL_CHOICE._serialized_start=70393 + _STATEPROTOCOL_CHOICE._serialized_end=70456 + _STATEPROTOCOL_CHOICE_ENUM._serialized_start=70403 + _STATEPROTOCOL_CHOICE_ENUM._serialized_end=70456 + _STATEPORTLINK._serialized_start=70486 + _STATEPORTLINK._serialized_end=70619 + _STATEPORTLINK_STATE._serialized_start=70569 + _STATEPORTLINK_STATE._serialized_end=70619 _STATEPORTLINK_STATE_ENUM._serialized_start=13446 _STATEPORTLINK_STATE_ENUM._serialized_end=13487 - _STATEPORTCAPTURE._serialized_start=65268 - _STATEPORTCAPTURE._serialized_end=65410 - _STATEPORTCAPTURE_STATE._serialized_start=65357 - _STATEPORTCAPTURE_STATE._serialized_end=65410 - _STATEPORTCAPTURE_STATE_ENUM._serialized_start=65366 - _STATEPORTCAPTURE_STATE_ENUM._serialized_end=65410 - _STATETRAFFICFLOWTRANSMIT._serialized_start=65413 - _STATETRAFFICFLOWTRANSMIT._serialized_end=65594 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=65518 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=65594 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=65527 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=65594 - _STATEPROTOCOLALL._serialized_start=65596 - _STATEPROTOCOLALL._serialized_end=65718 - _STATEPROTOCOLALL_STATE._serialized_start=65357 - _STATEPROTOCOLALL_STATE._serialized_end=65410 - _STATEPROTOCOLALL_STATE_ENUM._serialized_start=65366 - _STATEPROTOCOLALL_STATE_ENUM._serialized_end=65410 - _STATEPROTOCOLROUTE._serialized_start=65721 - _STATEPROTOCOLROUTE._serialized_end=65870 - _STATEPROTOCOLROUTE_STATE._serialized_start=65809 - _STATEPROTOCOLROUTE_STATE._serialized_end=65870 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=65818 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=65870 - _STATEPROTOCOLLACP._serialized_start=65873 - _STATEPROTOCOLLACP._serialized_end=66049 - _STATEPROTOCOLLACP_CHOICE._serialized_start=65995 - _STATEPROTOCOLLACP_CHOICE._serialized_end=66039 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=66005 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=66039 - _STATEPROTOCOLLACPADMIN._serialized_start=66052 - _STATEPROTOCOLLACPADMIN._serialized_end=66209 - _STATEPROTOCOLLACPADMIN_STATE._serialized_start=65215 - _STATEPROTOCOLLACPADMIN_STATE._serialized_end=65265 + _STATEPORTCAPTURE._serialized_start=70622 + _STATEPORTCAPTURE._serialized_end=70764 + _STATEPORTCAPTURE_STATE._serialized_start=70711 + _STATEPORTCAPTURE_STATE._serialized_end=70764 + _STATEPORTCAPTURE_STATE_ENUM._serialized_start=70720 + _STATEPORTCAPTURE_STATE_ENUM._serialized_end=70764 + _STATETRAFFICFLOWTRANSMIT._serialized_start=70767 + _STATETRAFFICFLOWTRANSMIT._serialized_end=70948 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=70872 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=70948 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=70881 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=70948 + _STATEPROTOCOLALL._serialized_start=70950 + _STATEPROTOCOLALL._serialized_end=71072 + _STATEPROTOCOLALL_STATE._serialized_start=70711 + _STATEPROTOCOLALL_STATE._serialized_end=70764 + _STATEPROTOCOLALL_STATE_ENUM._serialized_start=70720 + _STATEPROTOCOLALL_STATE_ENUM._serialized_end=70764 + _STATEPROTOCOLROUTE._serialized_start=71075 + _STATEPROTOCOLROUTE._serialized_end=71224 + _STATEPROTOCOLROUTE_STATE._serialized_start=71163 + _STATEPROTOCOLROUTE_STATE._serialized_end=71224 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=71172 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=71224 + _STATEPROTOCOLLACP._serialized_start=71227 + _STATEPROTOCOLLACP._serialized_end=71403 + _STATEPROTOCOLLACP_CHOICE._serialized_start=71349 + _STATEPROTOCOLLACP_CHOICE._serialized_end=71393 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=71359 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=71393 + _STATEPROTOCOLLACPADMIN._serialized_start=71406 + _STATEPROTOCOLLACPADMIN._serialized_end=71563 + _STATEPROTOCOLLACPADMIN_STATE._serialized_start=70569 + _STATEPROTOCOLLACPADMIN_STATE._serialized_end=70619 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=13446 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=13487 - _CONTROLACTION._serialized_start=66212 - _CONTROLACTION._serialized_end=66381 - _CONTROLACTION_CHOICE._serialized_start=66321 - _CONTROLACTION_CHOICE._serialized_end=66368 - _CONTROLACTION_CHOICE_ENUM._serialized_start=66331 - _CONTROLACTION_CHOICE_ENUM._serialized_end=66368 - _CONTROLACTIONRESPONSE._serialized_start=66383 - _CONTROLACTIONRESPONSE._serialized_end=66481 - _ACTIONRESPONSE._serialized_start=66484 - _ACTIONRESPONSE._serialized_end=66663 - _ACTIONRESPONSE_CHOICE._serialized_start=66321 - _ACTIONRESPONSE_CHOICE._serialized_end=66368 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=66331 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=66368 - _ACTIONPROTOCOL._serialized_start=66666 - _ACTIONPROTOCOL._serialized_end=66951 - _ACTIONPROTOCOL_CHOICE._serialized_start=66863 - _ACTIONPROTOCOL_CHOICE._serialized_end=66925 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=66873 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=66925 - _ACTIONRESPONSEPROTOCOL._serialized_start=66954 - _ACTIONRESPONSEPROTOCOL._serialized_end=67212 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=67141 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=67194 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24524 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24567 - _ACTIONPROTOCOLIPV4._serialized_start=67215 - _ACTIONPROTOCOLIPV4._serialized_end=67390 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=67338 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=67381 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67348 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=67393 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=67592 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=67338 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67348 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67381 - _ACTIONPROTOCOLIPV4PING._serialized_start=67594 - _ACTIONPROTOCOLIPV4PING._serialized_end=67672 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=67674 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=67773 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=67775 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=67871 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=67874 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=68023 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=68033 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=68083 - _ACTIONPROTOCOLIPV6._serialized_start=68086 - _ACTIONPROTOCOLIPV6._serialized_end=68261 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=67338 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=67381 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67348 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=68264 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=68463 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=67338 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67348 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67381 - _ACTIONPROTOCOLIPV6PING._serialized_start=68465 - _ACTIONPROTOCOLIPV6PING._serialized_end=68543 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=68545 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=68644 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=68646 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=68742 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=68745 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=68954 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=68023 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=68033 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=68083 - _ACTIONPROTOCOLBGP._serialized_start=68957 - _ACTIONPROTOCOLBGP._serialized_end=69309 - _ACTIONPROTOCOLBGP_CHOICE._serialized_start=69180 - _ACTIONPROTOCOLBGP_CHOICE._serialized_end=69262 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=69190 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=69262 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=69312 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=70220 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=69872 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=70061 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=69883 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=70061 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=70222 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=70330 - _METRICSREQUEST._serialized_start=70333 - _METRICSREQUEST._serialized_end=71020 - _METRICSREQUEST_CHOICE._serialized_start=70803 - _METRICSREQUEST_CHOICE._serialized_end=70927 - _METRICSREQUEST_CHOICE_ENUM._serialized_start=70813 - _METRICSREQUEST_CHOICE_ENUM._serialized_end=70927 - _METRICSRESPONSE._serialized_start=71023 - _METRICSRESPONSE._serialized_end=71659 - _METRICSRESPONSE_CHOICE._serialized_start=71451 - _METRICSRESPONSE_CHOICE._serialized_end=71648 - _METRICSRESPONSE_CHOICE_ENUM._serialized_start=71462 - _METRICSRESPONSE_CHOICE_ENUM._serialized_end=71648 - _PORTMETRICSREQUEST._serialized_start=71662 - _PORTMETRICSREQUEST._serialized_end=71995 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=71769 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=71995 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=71785 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=71995 - _PORTMETRIC._serialized_start=71998 - _PORTMETRIC._serialized_end=72772 - _PORTMETRIC_LINK._serialized_start=72414 - _PORTMETRIC_LINK._serialized_end=72463 + _CONTROLACTION._serialized_start=71566 + _CONTROLACTION._serialized_end=71735 + _CONTROLACTION_CHOICE._serialized_start=71675 + _CONTROLACTION_CHOICE._serialized_end=71722 + _CONTROLACTION_CHOICE_ENUM._serialized_start=71685 + _CONTROLACTION_CHOICE_ENUM._serialized_end=71722 + _CONTROLACTIONRESPONSE._serialized_start=71737 + _CONTROLACTIONRESPONSE._serialized_end=71835 + _ACTIONRESPONSE._serialized_start=71838 + _ACTIONRESPONSE._serialized_end=72017 + _ACTIONRESPONSE_CHOICE._serialized_start=71675 + _ACTIONRESPONSE_CHOICE._serialized_end=71722 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=71685 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=71722 + _ACTIONPROTOCOL._serialized_start=72020 + _ACTIONPROTOCOL._serialized_end=72305 + _ACTIONPROTOCOL_CHOICE._serialized_start=72217 + _ACTIONPROTOCOL_CHOICE._serialized_end=72279 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=72227 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=72279 + _ACTIONRESPONSEPROTOCOL._serialized_start=72308 + _ACTIONRESPONSEPROTOCOL._serialized_end=72566 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=72495 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=72548 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24581 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24624 + _ACTIONPROTOCOLIPV4._serialized_start=72569 + _ACTIONPROTOCOLIPV4._serialized_end=72744 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=72692 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=72735 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=72747 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=72946 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=72692 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 + _ACTIONPROTOCOLIPV4PING._serialized_start=72948 + _ACTIONPROTOCOLIPV4PING._serialized_end=73026 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=73028 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=73127 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=73129 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=73225 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=73228 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=73377 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=73387 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=73437 + _ACTIONPROTOCOLIPV6._serialized_start=73440 + _ACTIONPROTOCOLIPV6._serialized_end=73615 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=72692 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=72735 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=73618 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=73817 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=72692 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 + _ACTIONPROTOCOLIPV6PING._serialized_start=73819 + _ACTIONPROTOCOLIPV6PING._serialized_end=73897 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=73899 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=73998 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=74000 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=74096 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=74099 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=74308 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=73377 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=73387 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=73437 + _ACTIONPROTOCOLBGP._serialized_start=74311 + _ACTIONPROTOCOLBGP._serialized_end=74663 + _ACTIONPROTOCOLBGP_CHOICE._serialized_start=74534 + _ACTIONPROTOCOLBGP_CHOICE._serialized_end=74616 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=74544 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=74616 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=74666 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=75574 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=75226 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=75415 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=75237 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=75415 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=75576 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=75684 + _METRICSREQUEST._serialized_start=75687 + _METRICSREQUEST._serialized_end=76374 + _METRICSREQUEST_CHOICE._serialized_start=76157 + _METRICSREQUEST_CHOICE._serialized_end=76281 + _METRICSREQUEST_CHOICE_ENUM._serialized_start=76167 + _METRICSREQUEST_CHOICE_ENUM._serialized_end=76281 + _METRICSRESPONSE._serialized_start=76377 + _METRICSRESPONSE._serialized_end=77013 + _METRICSRESPONSE_CHOICE._serialized_start=76805 + _METRICSRESPONSE_CHOICE._serialized_end=77002 + _METRICSRESPONSE_CHOICE_ENUM._serialized_start=76816 + _METRICSRESPONSE_CHOICE_ENUM._serialized_end=77002 + _PORTMETRICSREQUEST._serialized_start=77016 + _PORTMETRICSREQUEST._serialized_end=77349 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=77123 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=77349 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=77139 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=77349 + _PORTMETRIC._serialized_start=77352 + _PORTMETRIC._serialized_end=78126 + _PORTMETRIC_LINK._serialized_start=77768 + _PORTMETRIC_LINK._serialized_end=77817 _PORTMETRIC_LINK_ENUM._serialized_start=13446 _PORTMETRIC_LINK_ENUM._serialized_end=13487 - _PORTMETRIC_CAPTURE._serialized_start=72465 - _PORTMETRIC_CAPTURE._serialized_end=72525 - _PORTMETRIC_CAPTURE_ENUM._serialized_start=72476 - _PORTMETRIC_CAPTURE_ENUM._serialized_end=72525 - _PORTMETRIC_TRANSMIT._serialized_start=72527 - _PORTMETRIC_TRANSMIT._serialized_end=72588 - _PORTMETRIC_TRANSMIT_ENUM._serialized_start=72476 - _PORTMETRIC_TRANSMIT_ENUM._serialized_end=72525 - _FLOWMETRICSREQUEST._serialized_start=72775 - _FLOWMETRICSREQUEST._serialized_end=73111 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=72941 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=73092 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=72957 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=73092 - _FLOWTAGGEDMETRICSFILTER._serialized_start=73114 - _FLOWTAGGEDMETRICSFILTER._serialized_end=73486 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=73312 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=73448 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=73327 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=73448 - _FLOWMETRICTAGFILTER._serialized_start=73488 - _FLOWMETRICTAGFILTER._serialized_end=73553 - _FLOWMETRIC._serialized_start=73556 - _FLOWMETRIC._serialized_end=74241 - _FLOWMETRIC_TRANSMIT._serialized_start=73994 - _FLOWMETRIC_TRANSMIT._serialized_end=74067 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=74006 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=74067 - _FLOWTAGGEDMETRIC._serialized_start=74244 - _FLOWTAGGEDMETRIC._serialized_end=74684 - _FLOWMETRICTAG._serialized_start=74686 - _FLOWMETRICTAG._serialized_end=74784 - _FLOWMETRICTAGVALUE._serialized_start=74787 - _FLOWMETRICTAGVALUE._serialized_end=74981 - _FLOWMETRICTAGVALUE_CHOICE._serialized_start=74903 - _FLOWMETRICTAGVALUE_CHOICE._serialized_end=74954 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=74913 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=74954 - _METRICTIMESTAMP._serialized_start=74983 - _METRICTIMESTAMP._serialized_end=75110 - _METRICLATENCY._serialized_start=75113 - _METRICLATENCY._serialized_end=75248 - _BGPV4METRICSREQUEST._serialized_start=75251 - _BGPV4METRICSREQUEST._serialized_end=75756 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=75360 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=75756 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=75376 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75756 - _BGPV4METRIC._serialized_start=75759 - _BGPV4METRIC._serialized_end=76889 - _BGPV4METRIC_SESSIONSTATE._serialized_start=76362 - _BGPV4METRIC_SESSIONSTATE._serialized_end=76419 + _PORTMETRIC_CAPTURE._serialized_start=77819 + _PORTMETRIC_CAPTURE._serialized_end=77879 + _PORTMETRIC_CAPTURE_ENUM._serialized_start=77830 + _PORTMETRIC_CAPTURE_ENUM._serialized_end=77879 + _PORTMETRIC_TRANSMIT._serialized_start=77881 + _PORTMETRIC_TRANSMIT._serialized_end=77942 + _PORTMETRIC_TRANSMIT_ENUM._serialized_start=77830 + _PORTMETRIC_TRANSMIT_ENUM._serialized_end=77879 + _FLOWMETRICSREQUEST._serialized_start=78129 + _FLOWMETRICSREQUEST._serialized_end=78465 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=78295 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=78446 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=78311 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=78446 + _FLOWTAGGEDMETRICSFILTER._serialized_start=78468 + _FLOWTAGGEDMETRICSFILTER._serialized_end=78840 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=78666 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=78802 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=78681 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=78802 + _FLOWMETRICTAGFILTER._serialized_start=78842 + _FLOWMETRICTAGFILTER._serialized_end=78907 + _FLOWMETRIC._serialized_start=78910 + _FLOWMETRIC._serialized_end=79595 + _FLOWMETRIC_TRANSMIT._serialized_start=79348 + _FLOWMETRIC_TRANSMIT._serialized_end=79421 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=79360 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=79421 + _FLOWTAGGEDMETRIC._serialized_start=79598 + _FLOWTAGGEDMETRIC._serialized_end=80038 + _FLOWMETRICTAG._serialized_start=80040 + _FLOWMETRICTAG._serialized_end=80138 + _FLOWMETRICTAGVALUE._serialized_start=80141 + _FLOWMETRICTAGVALUE._serialized_end=80335 + _FLOWMETRICTAGVALUE_CHOICE._serialized_start=80257 + _FLOWMETRICTAGVALUE_CHOICE._serialized_end=80308 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=80267 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=80308 + _METRICTIMESTAMP._serialized_start=80337 + _METRICTIMESTAMP._serialized_end=80464 + _METRICLATENCY._serialized_start=80467 + _METRICLATENCY._serialized_end=80602 + _BGPV4METRICSREQUEST._serialized_start=80605 + _BGPV4METRICSREQUEST._serialized_end=81110 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=80714 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=81110 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 + _BGPV4METRIC._serialized_start=81113 + _BGPV4METRIC._serialized_end=82243 + _BGPV4METRIC_SESSIONSTATE._serialized_start=81716 + _BGPV4METRIC_SESSIONSTATE._serialized_end=81773 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=13446 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV4METRIC_FSMSTATE._serialized_start=76421 - _BGPV4METRIC_FSMSTATE._serialized_end=76539 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=76433 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=76539 - _BGPV6METRICSREQUEST._serialized_start=76892 - _BGPV6METRICSREQUEST._serialized_end=77397 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=75360 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=75756 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=75376 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75756 - _BGPV6METRIC._serialized_start=77400 - _BGPV6METRIC._serialized_end=78530 - _BGPV6METRIC_SESSIONSTATE._serialized_start=76362 - _BGPV6METRIC_SESSIONSTATE._serialized_end=76419 + _BGPV4METRIC_FSMSTATE._serialized_start=81775 + _BGPV4METRIC_FSMSTATE._serialized_end=81893 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=81787 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=81893 + _BGPV6METRICSREQUEST._serialized_start=82246 + _BGPV6METRICSREQUEST._serialized_end=82751 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=80714 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=81110 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 + _BGPV6METRIC._serialized_start=82754 + _BGPV6METRIC._serialized_end=83884 + _BGPV6METRIC_SESSIONSTATE._serialized_start=81716 + _BGPV6METRIC_SESSIONSTATE._serialized_end=81773 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=13446 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV6METRIC_FSMSTATE._serialized_start=76421 - _BGPV6METRIC_FSMSTATE._serialized_end=76539 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=76433 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=76539 - _ISISMETRICSREQUEST._serialized_start=78533 - _ISISMETRICSREQUEST._serialized_end=79319 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=78642 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=79319 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=78658 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=79319 - _ISISMETRIC._serialized_start=79322 - _ISISMETRIC._serialized_end=80846 - _LAGMETRICSREQUEST._serialized_start=80849 - _LAGMETRICSREQUEST._serialized_end=81166 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=80953 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=81166 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80969 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81166 - _LAGMETRIC._serialized_start=81169 - _LAGMETRIC._serialized_end=81725 - _LAGMETRIC_OPERSTATUS._serialized_start=81497 - _LAGMETRIC_OPERSTATUS._serialized_end=81552 + _BGPV6METRIC_FSMSTATE._serialized_start=81775 + _BGPV6METRIC_FSMSTATE._serialized_end=81893 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=81787 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=81893 + _ISISMETRICSREQUEST._serialized_start=83887 + _ISISMETRICSREQUEST._serialized_end=84673 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=83996 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=84673 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=84012 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84673 + _ISISMETRIC._serialized_start=84676 + _ISISMETRIC._serialized_end=86200 + _LAGMETRICSREQUEST._serialized_start=86203 + _LAGMETRICSREQUEST._serialized_end=86520 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=86307 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=86520 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=86323 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=86520 + _LAGMETRIC._serialized_start=86523 + _LAGMETRIC._serialized_end=87079 + _LAGMETRIC_OPERSTATUS._serialized_start=86851 + _LAGMETRIC_OPERSTATUS._serialized_end=86906 _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=13446 _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=13487 - _LACPMETRICSREQUEST._serialized_start=81728 - _LACPMETRICSREQUEST._serialized_end=82164 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=81865 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=82164 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=81881 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82164 - _LACPMETRIC._serialized_start=82167 - _LACPMETRIC._serialized_end=83204 - _LACPMETRIC_ACTIVITY._serialized_start=82733 - _LACPMETRIC_ACTIVITY._serialized_end=82793 - _LACPMETRIC_ACTIVITY_ENUM._serialized_start=82745 - _LACPMETRIC_ACTIVITY_ENUM._serialized_end=82793 - _LACPMETRIC_TIMEOUT._serialized_start=82795 - _LACPMETRIC_TIMEOUT._serialized_end=82850 - _LACPMETRIC_TIMEOUT_ENUM._serialized_start=82806 - _LACPMETRIC_TIMEOUT_ENUM._serialized_end=82850 - _LACPMETRIC_SYNCHRONIZATION._serialized_start=82852 - _LACPMETRIC_SYNCHRONIZATION._serialized_end=82921 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=82871 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=82921 - _LLDPMETRICSREQUEST._serialized_start=83207 - _LLDPMETRICSREQUEST._serialized_end=83460 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=83314 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=83460 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83330 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83460 - _LLDPMETRIC._serialized_start=83463 - _LLDPMETRIC._serialized_end=83765 - _RSVPMETRICSREQUEST._serialized_start=83768 - _RSVPMETRICSREQUEST._serialized_end=84474 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=83877 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=84474 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83893 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84474 - _RSVPMETRIC._serialized_start=84477 - _RSVPMETRIC._serialized_end=85873 - _STATESREQUEST._serialized_start=85876 - _STATESREQUEST._serialized_end=86540 - _STATESREQUEST_CHOICE._serialized_start=86285 - _STATESREQUEST_CHOICE._serialized_end=86427 - _STATESREQUEST_CHOICE_ENUM._serialized_start=86296 - _STATESREQUEST_CHOICE_ENUM._serialized_end=86427 - _STATESRESPONSE._serialized_start=86543 - _STATESRESPONSE._serialized_end=87035 - _STATESRESPONSE_CHOICE._serialized_start=86285 - _STATESRESPONSE_CHOICE._serialized_end=86427 - _STATESRESPONSE_CHOICE_ENUM._serialized_start=86296 - _STATESRESPONSE_CHOICE_ENUM._serialized_end=86427 - _NEIGHBORSV4STATESREQUEST._serialized_start=87037 - _NEIGHBORSV4STATESREQUEST._serialized_end=87087 - _NEIGHBORSV4STATE._serialized_start=87089 - _NEIGHBORSV4STATE._serialized_end=87208 - _NEIGHBORSV6STATESREQUEST._serialized_start=87210 - _NEIGHBORSV6STATESREQUEST._serialized_end=87260 - _NEIGHBORSV6STATE._serialized_start=87262 - _NEIGHBORSV6STATE._serialized_end=87381 - _BGPPREFIXSTATEREQUEST._serialized_start=87384 - _BGPPREFIXSTATEREQUEST._serialized_end=87706 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=87630 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=87706 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=87647 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=87706 - _BGPPREFIXIPV4UNICASTFILTER._serialized_start=87709 - _BGPPREFIXIPV4UNICASTFILTER._serialized_end=87982 + _LACPMETRICSREQUEST._serialized_start=87082 + _LACPMETRICSREQUEST._serialized_end=87518 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=87219 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=87518 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=87235 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=87518 + _LACPMETRIC._serialized_start=87521 + _LACPMETRIC._serialized_end=88558 + _LACPMETRIC_ACTIVITY._serialized_start=88087 + _LACPMETRIC_ACTIVITY._serialized_end=88147 + _LACPMETRIC_ACTIVITY_ENUM._serialized_start=88099 + _LACPMETRIC_ACTIVITY_ENUM._serialized_end=88147 + _LACPMETRIC_TIMEOUT._serialized_start=88149 + _LACPMETRIC_TIMEOUT._serialized_end=88204 + _LACPMETRIC_TIMEOUT_ENUM._serialized_start=88160 + _LACPMETRIC_TIMEOUT_ENUM._serialized_end=88204 + _LACPMETRIC_SYNCHRONIZATION._serialized_start=88206 + _LACPMETRIC_SYNCHRONIZATION._serialized_end=88275 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=88225 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=88275 + _LLDPMETRICSREQUEST._serialized_start=88561 + _LLDPMETRICSREQUEST._serialized_end=88814 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=88668 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=88814 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=88684 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=88814 + _LLDPMETRIC._serialized_start=88817 + _LLDPMETRIC._serialized_end=89119 + _RSVPMETRICSREQUEST._serialized_start=89122 + _RSVPMETRICSREQUEST._serialized_end=89828 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=89231 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=89828 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=89247 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=89828 + _RSVPMETRIC._serialized_start=89831 + _RSVPMETRIC._serialized_end=91227 + _STATESREQUEST._serialized_start=91230 + _STATESREQUEST._serialized_end=91894 + _STATESREQUEST_CHOICE._serialized_start=91639 + _STATESREQUEST_CHOICE._serialized_end=91781 + _STATESREQUEST_CHOICE_ENUM._serialized_start=91650 + _STATESREQUEST_CHOICE_ENUM._serialized_end=91781 + _STATESRESPONSE._serialized_start=91897 + _STATESRESPONSE._serialized_end=92389 + _STATESRESPONSE_CHOICE._serialized_start=91639 + _STATESRESPONSE_CHOICE._serialized_end=91781 + _STATESRESPONSE_CHOICE_ENUM._serialized_start=91650 + _STATESRESPONSE_CHOICE_ENUM._serialized_end=91781 + _NEIGHBORSV4STATESREQUEST._serialized_start=92391 + _NEIGHBORSV4STATESREQUEST._serialized_end=92441 + _NEIGHBORSV4STATE._serialized_start=92443 + _NEIGHBORSV4STATE._serialized_end=92562 + _NEIGHBORSV6STATESREQUEST._serialized_start=92564 + _NEIGHBORSV6STATESREQUEST._serialized_end=92614 + _NEIGHBORSV6STATE._serialized_start=92616 + _NEIGHBORSV6STATE._serialized_end=92735 + _BGPPREFIXSTATEREQUEST._serialized_start=92738 + _BGPPREFIXSTATEREQUEST._serialized_end=93060 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=92984 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=93060 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=93001 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=93060 + _BGPPREFIXIPV4UNICASTFILTER._serialized_start=93063 + _BGPPREFIXIPV4UNICASTFILTER._serialized_end=93336 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=18460 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=18527 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTFILTER._serialized_start=87985 - _BGPPREFIXIPV6UNICASTFILTER._serialized_end=88258 + _BGPPREFIXIPV6UNICASTFILTER._serialized_start=93339 + _BGPPREFIXIPV6UNICASTFILTER._serialized_end=93612 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=18460 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=18527 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXESSTATE._serialized_start=88261 - _BGPPREFIXESSTATE._serialized_end=88451 - _BGPPREFIXIPV4UNICASTSTATE._serialized_start=88454 - _BGPPREFIXIPV4UNICASTSTATE._serialized_end=89064 + _BGPPREFIXESSTATE._serialized_start=93615 + _BGPPREFIXESSTATE._serialized_end=93805 + _BGPPREFIXIPV4UNICASTSTATE._serialized_start=93808 + _BGPPREFIXIPV4UNICASTSTATE._serialized_end=94418 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=18460 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=18527 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTSTATE._serialized_start=89067 - _BGPPREFIXIPV6UNICASTSTATE._serialized_end=89677 + _BGPPREFIXIPV6UNICASTSTATE._serialized_start=94421 + _BGPPREFIXIPV6UNICASTSTATE._serialized_end=95031 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=18460 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=18527 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _RESULTBGPCOMMUNITY._serialized_start=89680 - _RESULTBGPCOMMUNITY._serialized_end=89984 + _RESULTBGPCOMMUNITY._serialized_start=95034 + _RESULTBGPCOMMUNITY._serialized_end=95338 _RESULTBGPCOMMUNITY_TYPE._serialized_start=18789 _RESULTBGPCOMMUNITY_TYPE._serialized_end=18931 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18798 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18931 - _RESULTBGPASPATH._serialized_start=89986 - _RESULTBGPASPATH._serialized_end=90050 - _RESULTBGPASPATHSEGMENT._serialized_start=90053 - _RESULTBGPASPATHSEGMENT._serialized_end=90259 + _RESULTBGPASPATH._serialized_start=95340 + _RESULTBGPASPATH._serialized_end=95404 + _RESULTBGPASPATHSEGMENT._serialized_start=95407 + _RESULTBGPASPATHSEGMENT._serialized_end=95613 _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19892 _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=19985 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19900 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19985 - _ISISLSPSSTATEREQUEST._serialized_start=90261 - _ISISLSPSSTATEREQUEST._serialized_end=90310 - _ISISLSPSSTATE._serialized_start=90312 - _ISISLSPSSTATE._serialized_end=90412 - _ISISLSPSTATE._serialized_start=90415 - _ISISLSPSTATE._serialized_end=90850 - _ISISLSPSTATE_PDUTYPE._serialized_start=90688 - _ISISLSPSTATE_PDUTYPE._serialized_end=90748 + _ISISLSPSSTATEREQUEST._serialized_start=95615 + _ISISLSPSSTATEREQUEST._serialized_end=95664 + _ISISLSPSSTATE._serialized_start=95666 + _ISISLSPSSTATE._serialized_end=95766 + _ISISLSPSTATE._serialized_start=95769 + _ISISLSPSTATE._serialized_end=96204 + _ISISLSPSTATE_PDUTYPE._serialized_start=96042 + _ISISLSPSTATE_PDUTYPE._serialized_end=96102 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9909 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9958 - _ISISLSPTLVS._serialized_start=90853 - _ISISLSPTLVS._serialized_end=91361 - _ISISLSPHOSTNAME._serialized_start=91363 - _ISISLSPHOSTNAME._serialized_end=91416 - _ISISLSPFLAGS._serialized_start=91419 - _ISISLSPFLAGS._serialized_end=91721 - _ISISLSPISREACHABILITYTLV._serialized_start=91723 - _ISISLSPISREACHABILITYTLV._serialized_end=91790 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=91792 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=91867 - _ISISLSPNEIGHBOR._serialized_start=91869 - _ISISLSPNEIGHBOR._serialized_end=91924 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=91926 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=92002 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=92004 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=92080 - _ISISLSPV4PREFIX._serialized_start=92083 - _ISISLSPV4PREFIX._serialized_end=92554 + _ISISLSPTLVS._serialized_start=96207 + _ISISLSPTLVS._serialized_end=96715 + _ISISLSPHOSTNAME._serialized_start=96717 + _ISISLSPHOSTNAME._serialized_end=96770 + _ISISLSPFLAGS._serialized_start=96773 + _ISISLSPFLAGS._serialized_end=97075 + _ISISLSPISREACHABILITYTLV._serialized_start=97077 + _ISISLSPISREACHABILITYTLV._serialized_end=97144 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=97146 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=97221 + _ISISLSPNEIGHBOR._serialized_start=97223 + _ISISLSPNEIGHBOR._serialized_end=97278 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=97280 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=97356 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=97358 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=97434 + _ISISLSPV4PREFIX._serialized_start=97437 + _ISISLSPV4PREFIX._serialized_end=97908 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 @@ -1181,18 +1245,18 @@ _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=13422 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=92556 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=92640 - _ISISLSPEXTENDEDV4PREFIX._serialized_start=92643 - _ISISLSPEXTENDEDV4PREFIX._serialized_end=93051 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=97910 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=97994 + _ISISLSPEXTENDEDV4PREFIX._serialized_start=97997 + _ISISLSPEXTENDEDV4PREFIX._serialized_end=98405 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _ISISLSPIPV6REACHABILITYTLV._serialized_start=93053 - _ISISLSPIPV6REACHABILITYTLV._serialized_end=93121 - _ISISLSPV6PREFIX._serialized_start=93124 - _ISISLSPV6PREFIX._serialized_end=93663 + _ISISLSPIPV6REACHABILITYTLV._serialized_start=98407 + _ISISLSPIPV6REACHABILITYTLV._serialized_end=98475 + _ISISLSPV6PREFIX._serialized_start=98478 + _ISISLSPV6PREFIX._serialized_end=99017 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 @@ -1201,1532 +1265,1532 @@ _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=13422 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPPREFIXATTRIBUTES._serialized_start=93665 - _ISISLSPPREFIXATTRIBUTES._serialized_end=93786 - _LLDPNEIGHBORSSTATEREQUEST._serialized_start=93788 - _LLDPNEIGHBORSSTATEREQUEST._serialized_end=93864 - _LLDPNEIGHBORSSTATE._serialized_start=93867 - _LLDPNEIGHBORSSTATE._serialized_end=95030 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=94446 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=94620 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=94464 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=94620 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=94623 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=94793 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=94638 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=94793 - _LLDPCUSTOMTLVSTATE._serialized_start=95033 - _LLDPCUSTOMTLVSTATE._serialized_end=95163 - _LLDPCAPABILITYSTATE._serialized_start=95166 - _LLDPCAPABILITYSTATE._serialized_end=95566 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=95299 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=95523 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=95318 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=95523 - _RSVPLSPSSTATEREQUEST._serialized_start=95568 - _RSVPLSPSSTATEREQUEST._serialized_end=95617 - _RSVPLSPSSTATE._serialized_start=95619 - _RSVPLSPSSTATE._serialized_end=95728 - _RSVPIPV4LSPSTATE._serialized_start=95731 - _RSVPIPV4LSPSTATE._serialized_end=95970 - _RSVPLSPSTATE._serialized_start=95973 - _RSVPLSPSTATE._serialized_end=96537 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=96267 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=96325 + _ISISLSPPREFIXATTRIBUTES._serialized_start=99019 + _ISISLSPPREFIXATTRIBUTES._serialized_end=99140 + _LLDPNEIGHBORSSTATEREQUEST._serialized_start=99142 + _LLDPNEIGHBORSSTATEREQUEST._serialized_end=99218 + _LLDPNEIGHBORSSTATE._serialized_start=99221 + _LLDPNEIGHBORSSTATE._serialized_end=100384 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=99800 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=99974 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=99818 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=99974 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=99977 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=100147 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=99992 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=100147 + _LLDPCUSTOMTLVSTATE._serialized_start=100387 + _LLDPCUSTOMTLVSTATE._serialized_end=100517 + _LLDPCAPABILITYSTATE._serialized_start=100520 + _LLDPCAPABILITYSTATE._serialized_end=100920 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=100653 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=100877 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=100672 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=100877 + _RSVPLSPSSTATEREQUEST._serialized_start=100922 + _RSVPLSPSSTATEREQUEST._serialized_end=100971 + _RSVPLSPSSTATE._serialized_start=100973 + _RSVPLSPSSTATE._serialized_end=101082 + _RSVPIPV4LSPSTATE._serialized_start=101085 + _RSVPIPV4LSPSTATE._serialized_end=101324 + _RSVPLSPSTATE._serialized_start=101327 + _RSVPLSPSTATE._serialized_end=101891 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=101621 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=101679 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=13446 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=13487 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=96327 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=96416 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=96345 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=96416 - _RSVPLSPIPV4RRO._serialized_start=96539 - _RSVPLSPIPV4RRO._serialized_end=96637 - _RSVPLSPIPV4ERO._serialized_start=96640 - _RSVPLSPIPV4ERO._serialized_end=96882 - _RSVPLSPIPV4ERO_TYPE._serialized_start=96747 - _RSVPLSPIPV4ERO_TYPE._serialized_end=96854 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=96755 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=96854 - _CAPTUREREQUEST._serialized_start=96884 - _CAPTUREREQUEST._serialized_end=96919 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=96921 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=97040 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=97042 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=97153 - _PATTERNFLOWETHERNETDST._serialized_start=97156 - _PATTERNFLOWETHERNETDST._serialized_end=97632 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=97478 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=97574 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=97634 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=97753 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=97755 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=97866 - _PATTERNFLOWETHERNETSRC._serialized_start=97869 - _PATTERNFLOWETHERNETSRC._serialized_end=98307 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=98309 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=98434 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=98436 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=98553 - _PATTERNFLOWETHERNETETHERTYPE._serialized_start=98556 - _PATTERNFLOWETHERNETETHERTYPE._serialized_end=99062 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=97478 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=97574 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=99064 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=99188 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=99190 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=99306 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=99309 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=99772 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=99774 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=99894 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=99896 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=100008 - _PATTERNFLOWVLANPRIORITY._serialized_start=100011 - _PATTERNFLOWVLANPRIORITY._serialized_end=100454 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANCFICOUNTER._serialized_start=100456 - _PATTERNFLOWVLANCFICOUNTER._serialized_end=100571 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=100573 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=100680 - _PATTERNFLOWVLANCFI._serialized_start=100683 - _PATTERNFLOWVLANCFI._serialized_end=101101 - _PATTERNFLOWVLANCFI_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANCFI_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANIDCOUNTER._serialized_start=101103 - _PATTERNFLOWVLANIDCOUNTER._serialized_end=101217 - _PATTERNFLOWVLANIDMETRICTAG._serialized_start=101219 - _PATTERNFLOWVLANIDMETRICTAG._serialized_end=101325 - _PATTERNFLOWVLANID._serialized_start=101328 - _PATTERNFLOWVLANID._serialized_end=101741 - _PATTERNFLOWVLANID_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANID_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=101743 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=101859 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=101861 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=101969 - _PATTERNFLOWVLANTPID._serialized_start=101972 - _PATTERNFLOWVLANTPID._serialized_end=102395 - _PATTERNFLOWVLANTPID_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANTPID_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=102397 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=102515 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=102517 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=102627 - _PATTERNFLOWVXLANFLAGS._serialized_start=102630 - _PATTERNFLOWVXLANFLAGS._serialized_end=103063 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=103065 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=103187 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=103189 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=103303 - _PATTERNFLOWVXLANRESERVED0._serialized_start=103306 - _PATTERNFLOWVXLANRESERVED0._serialized_end=103759 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANVNICOUNTER._serialized_start=103761 - _PATTERNFLOWVXLANVNICOUNTER._serialized_end=103877 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=103879 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=103987 - _PATTERNFLOWVXLANVNI._serialized_start=103990 - _PATTERNFLOWVXLANVNI._serialized_end=104451 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=97478 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=97574 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=104453 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=104575 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=104577 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=104691 - _PATTERNFLOWVXLANRESERVED1._serialized_start=104694 - _PATTERNFLOWVXLANRESERVED1._serialized_end=105147 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=105149 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=105268 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=105270 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=105381 - _PATTERNFLOWIPV4VERSION._serialized_start=105384 - _PATTERNFLOWIPV4VERSION._serialized_end=105822 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=105824 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=105948 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=105950 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=106066 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=106069 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=106570 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=106572 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=106695 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=106697 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=106812 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=106815 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=107311 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=107313 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=107439 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=107441 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=107559 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=107562 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=108035 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=108037 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=108157 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=108159 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=108271 - _PATTERNFLOWIPV4RESERVED._serialized_start=108274 - _PATTERNFLOWIPV4RESERVED._serialized_end=108717 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=108719 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=108843 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=108845 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=108961 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=108964 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=109427 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=109429 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=109554 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=109556 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=109673 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=109676 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=110144 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=110146 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=110272 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=110274 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=110392 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=110395 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=110868 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=110870 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=110992 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=110994 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=111108 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=111111 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=111564 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=111566 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=111686 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=111688 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=111800 - _PATTERNFLOWIPV4PROTOCOL._serialized_start=111803 - _PATTERNFLOWIPV4PROTOCOL._serialized_end=112284 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=112287 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=112638 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=112640 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=112755 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=112757 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=112864 - _PATTERNFLOWIPV4SRC._serialized_start=112867 - _PATTERNFLOWIPV4SRC._serialized_end=113285 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=113287 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=113402 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=113404 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=113511 - _PATTERNFLOWIPV4DST._serialized_start=113514 - _PATTERNFLOWIPV4DST._serialized_end=113932 - _PATTERNFLOWIPV4DST_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DST_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=113934 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=114057 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=114059 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=114174 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=114177 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=114635 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=114637 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=114756 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=114758 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=114869 - _PATTERNFLOWIPV4DSCPPHB._serialized_start=114872 - _PATTERNFLOWIPV4DSCPPHB._serialized_end=115310 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=115312 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=115431 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=115433 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=115544 - _PATTERNFLOWIPV4DSCPECN._serialized_start=115547 - _PATTERNFLOWIPV4DSCPECN._serialized_end=115985 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=115987 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=116112 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=116114 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=116231 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=116234 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=116702 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=116704 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=116824 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=116826 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=116938 - _PATTERNFLOWIPV4TOSDELAY._serialized_start=116941 - _PATTERNFLOWIPV4TOSDELAY._serialized_end=117384 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=117386 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=117511 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=117513 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=117630 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=117633 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=118101 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=118103 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=118229 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=118231 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=118349 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=118352 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=118825 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=118827 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=118950 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=118952 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=119067 - _PATTERNFLOWIPV4TOSMONETARY._serialized_start=119070 - _PATTERNFLOWIPV4TOSMONETARY._serialized_end=119528 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=119530 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=119651 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=119653 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=119766 - _PATTERNFLOWIPV4TOSUNUSED._serialized_start=119769 - _PATTERNFLOWIPV4TOSUNUSED._serialized_end=120217 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=120219 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=120338 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=120340 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=120451 - _PATTERNFLOWIPV6VERSION._serialized_start=120454 - _PATTERNFLOWIPV6VERSION._serialized_end=120892 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=120894 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=121018 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=121020 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=121136 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=121139 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=121602 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=121604 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=121725 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=121727 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=121840 - _PATTERNFLOWIPV6FLOWLABEL._serialized_start=121843 - _PATTERNFLOWIPV6FLOWLABEL._serialized_end=122291 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=122293 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=122418 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=122420 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=122537 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=122540 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=123046 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=123048 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=123170 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=123172 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=123286 - _PATTERNFLOWIPV6NEXTHEADER._serialized_start=123289 - _PATTERNFLOWIPV6NEXTHEADER._serialized_end=123780 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=123782 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=123902 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=123904 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=124016 - _PATTERNFLOWIPV6HOPLIMIT._serialized_start=124019 - _PATTERNFLOWIPV6HOPLIMIT._serialized_end=124462 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=124464 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=124579 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=124581 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=124688 - _PATTERNFLOWIPV6SRC._serialized_start=124691 - _PATTERNFLOWIPV6SRC._serialized_end=125109 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=125111 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=125226 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=125228 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=125335 - _PATTERNFLOWIPV6DST._serialized_start=125338 - _PATTERNFLOWIPV6DST._serialized_end=125756 - _PATTERNFLOWIPV6DST_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6DST_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=125758 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=125877 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=125879 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=125990 - _PATTERNFLOWPFCPAUSEDST._serialized_start=125993 - _PATTERNFLOWPFCPAUSEDST._serialized_end=126431 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=126433 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=126552 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=126554 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=126665 - _PATTERNFLOWPFCPAUSESRC._serialized_start=126668 - _PATTERNFLOWPFCPAUSESRC._serialized_end=127106 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=127108 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=127233 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=127235 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=127352 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=127355 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=127823 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=127826 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=127955 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=127957 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=128078 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=128081 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=128569 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=128572 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=128705 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=128707 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=128832 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=128835 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=129343 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=129345 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=129472 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=129474 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=129593 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=129596 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=130074 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=130076 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=130203 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=130205 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=130324 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=130327 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=130805 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=130807 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=130934 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=130936 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=131055 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=131058 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=131536 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=131538 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=131665 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=131667 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=131786 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=131789 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=132267 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=132269 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=132396 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=132398 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=132517 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=132520 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=132998 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=133000 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=133127 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=133129 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=133248 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=133251 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=133729 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=133731 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=133858 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=133860 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=133979 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=133982 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=134460 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=134462 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=134589 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=134591 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=134710 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=134713 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=135191 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=135193 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=135317 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=135319 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=135435 - _PATTERNFLOWETHERNETPAUSEDST._serialized_start=135438 - _PATTERNFLOWETHERNETPAUSEDST._serialized_end=135901 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=135903 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=136027 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=136029 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=136145 - _PATTERNFLOWETHERNETPAUSESRC._serialized_start=136148 - _PATTERNFLOWETHERNETPAUSESRC._serialized_end=136611 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=136614 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=136744 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=136746 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=136868 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=136871 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=137364 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=137367 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=137501 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=137503 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=137629 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=137632 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=138145 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=138147 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=138272 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=138274 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=138391 - _PATTERNFLOWETHERNETPAUSETIME._serialized_start=138394 - _PATTERNFLOWETHERNETPAUSETIME._serialized_end=138862 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=138864 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=138982 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=138984 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=139094 - _PATTERNFLOWTCPSRCPORT._serialized_start=139097 - _PATTERNFLOWTCPSRCPORT._serialized_end=139530 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=139532 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=139650 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=139652 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=139762 - _PATTERNFLOWTCPDSTPORT._serialized_start=139765 - _PATTERNFLOWTCPDSTPORT._serialized_end=140198 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=140200 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=140317 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=140319 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=140428 - _PATTERNFLOWTCPSEQNUM._serialized_start=140431 - _PATTERNFLOWTCPSEQNUM._serialized_end=140859 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=140861 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=140978 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=140980 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=141089 - _PATTERNFLOWTCPACKNUM._serialized_start=141092 - _PATTERNFLOWTCPACKNUM._serialized_end=141520 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=141522 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=141643 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=141645 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=141758 - _PATTERNFLOWTCPDATAOFFSET._serialized_start=141761 - _PATTERNFLOWTCPDATAOFFSET._serialized_end=142209 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=142211 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=142327 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=142329 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=142437 - _PATTERNFLOWTCPECNNS._serialized_start=142440 - _PATTERNFLOWTCPECNNS._serialized_end=142863 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=142865 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=142982 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=142984 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=143093 - _PATTERNFLOWTCPECNCWR._serialized_start=143096 - _PATTERNFLOWTCPECNCWR._serialized_end=143524 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=143526 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=143644 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=143646 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=143756 - _PATTERNFLOWTCPECNECHO._serialized_start=143759 - _PATTERNFLOWTCPECNECHO._serialized_end=144192 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=144194 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=144311 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=144313 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=144422 - _PATTERNFLOWTCPCTLURG._serialized_start=144425 - _PATTERNFLOWTCPCTLURG._serialized_end=144853 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=144855 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=144972 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=144974 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=145083 - _PATTERNFLOWTCPCTLACK._serialized_start=145086 - _PATTERNFLOWTCPCTLACK._serialized_end=145514 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=145516 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=145633 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=145635 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=145744 - _PATTERNFLOWTCPCTLPSH._serialized_start=145747 - _PATTERNFLOWTCPCTLPSH._serialized_end=146175 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=146177 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=146294 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=146296 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=146405 - _PATTERNFLOWTCPCTLRST._serialized_start=146408 - _PATTERNFLOWTCPCTLRST._serialized_end=146836 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=146838 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=146955 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=146957 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=147066 - _PATTERNFLOWTCPCTLSYN._serialized_start=147069 - _PATTERNFLOWTCPCTLSYN._serialized_end=147497 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=147499 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=147616 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=147618 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=147727 - _PATTERNFLOWTCPCTLFIN._serialized_start=147730 - _PATTERNFLOWTCPCTLFIN._serialized_end=148158 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=148160 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=148277 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=148279 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=148388 - _PATTERNFLOWTCPWINDOW._serialized_start=148391 - _PATTERNFLOWTCPWINDOW._serialized_end=148819 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=148821 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=148939 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=148941 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=149051 - _PATTERNFLOWUDPSRCPORT._serialized_start=149054 - _PATTERNFLOWUDPSRCPORT._serialized_end=149487 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=149489 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=149607 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=149609 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=149719 - _PATTERNFLOWUDPDSTPORT._serialized_start=149722 - _PATTERNFLOWUDPDSTPORT._serialized_end=150155 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=150157 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=150274 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=150276 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=150385 - _PATTERNFLOWUDPLENGTH._serialized_start=150388 - _PATTERNFLOWUDPLENGTH._serialized_end=150816 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPCHECKSUM._serialized_start=150819 - _PATTERNFLOWUDPCHECKSUM._serialized_end=151149 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=151151 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=151277 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=151279 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=151397 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=151400 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=151873 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=98172 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=98258 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=151875 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=151995 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=151997 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=152109 - _PATTERNFLOWGRERESERVED0._serialized_start=152112 - _PATTERNFLOWGRERESERVED0._serialized_end=152555 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=98172 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=98258 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=152557 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=152675 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=152677 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=152787 - _PATTERNFLOWGREVERSION._serialized_start=152790 - _PATTERNFLOWGREVERSION._serialized_end=153223 - _PATTERNFLOWGREVERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGREVERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=153225 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=153344 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=153346 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=153457 - _PATTERNFLOWGREPROTOCOL._serialized_start=153460 - _PATTERNFLOWGREPROTOCOL._serialized_end=153898 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=98172 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=98258 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGRECHECKSUM._serialized_start=153901 - _PATTERNFLOWGRECHECKSUM._serialized_end=154231 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=154233 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=154353 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=154355 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=154467 - _PATTERNFLOWGRERESERVED1._serialized_start=154470 - _PATTERNFLOWGRERESERVED1._serialized_end=154913 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=98172 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=98258 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=154915 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=155035 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=155037 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=155149 - _PATTERNFLOWGTPV1VERSION._serialized_start=155152 - _PATTERNFLOWGTPV1VERSION._serialized_end=155595 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=155597 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=155722 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=155724 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=155841 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=155844 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=156312 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=156314 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=156435 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=156437 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=156550 - _PATTERNFLOWGTPV1RESERVED._serialized_start=156553 - _PATTERNFLOWGTPV1RESERVED._serialized_end=157001 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=157003 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=157121 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=157123 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=157233 - _PATTERNFLOWGTPV1EFLAG._serialized_start=157236 - _PATTERNFLOWGTPV1EFLAG._serialized_end=157669 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=157671 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=157789 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=157791 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=157901 - _PATTERNFLOWGTPV1SFLAG._serialized_start=157904 - _PATTERNFLOWGTPV1SFLAG._serialized_end=158337 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=158339 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=158458 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=158460 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=158571 - _PATTERNFLOWGTPV1PNFLAG._serialized_start=158574 - _PATTERNFLOWGTPV1PNFLAG._serialized_end=159012 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=159014 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=159138 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=159140 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=159256 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=159259 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=159722 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=159724 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=159850 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=159852 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=159970 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=159973 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=160446 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=160448 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=160565 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=160567 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=160676 - _PATTERNFLOWGTPV1TEID._serialized_start=160679 - _PATTERNFLOWGTPV1TEID._serialized_end=161107 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=161109 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=161235 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=161237 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=161355 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=161358 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=161831 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=161833 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=161956 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=161958 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=162073 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=162076 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=162534 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=162537 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=162673 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=162676 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=162804 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=162807 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=163330 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=163333 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=163468 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=163470 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=163597 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=163600 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=164118 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=164121 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=164249 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=164251 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=164371 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=164374 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=164857 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=164860 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=164999 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=165002 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=165133 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=165136 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=165674 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=165676 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=165796 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=165798 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=165910 - _PATTERNFLOWGTPV2VERSION._serialized_start=165913 - _PATTERNFLOWGTPV2VERSION._serialized_end=166356 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=166359 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=166488 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=166490 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=166611 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=166614 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=167102 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=167104 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=167225 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=167227 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=167340 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=167343 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=167791 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=167793 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=167912 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=167914 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=168025 - _PATTERNFLOWGTPV2SPARE1._serialized_start=168028 - _PATTERNFLOWGTPV2SPARE1._serialized_end=168466 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=168468 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=168592 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=168594 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=168710 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=168713 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=169176 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=169178 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=169304 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=169306 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=169424 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=169427 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=169900 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=169902 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=170019 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=170021 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=170130 - _PATTERNFLOWGTPV2TEID._serialized_start=170133 - _PATTERNFLOWGTPV2TEID._serialized_end=170561 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=170563 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=170690 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=170692 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=170811 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=170814 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=171292 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=171294 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=171413 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=171415 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=171526 - _PATTERNFLOWGTPV2SPARE2._serialized_start=171529 - _PATTERNFLOWGTPV2SPARE2._serialized_end=171967 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=171969 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=172092 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=172094 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=172209 - _PATTERNFLOWARPHARDWARETYPE._serialized_start=172212 - _PATTERNFLOWARPHARDWARETYPE._serialized_end=172670 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=172672 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=172795 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=172797 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=172912 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=172915 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=173373 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=173375 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=173500 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=173502 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=173619 - _PATTERNFLOWARPHARDWARELENGTH._serialized_start=173622 - _PATTERNFLOWARPHARDWARELENGTH._serialized_end=174090 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=174092 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=174217 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=174219 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=174336 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=174339 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=174807 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=174809 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=174929 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=174931 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=175043 - _PATTERNFLOWARPOPERATION._serialized_start=175046 - _PATTERNFLOWARPOPERATION._serialized_end=175489 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=98172 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=98258 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=175492 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=175621 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=175623 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=175744 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=175747 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=176235 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=176238 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=176367 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=176369 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=176490 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=176493 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=176981 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=176984 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=177113 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=177115 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=177236 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=177239 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=177727 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=177730 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=177859 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=177861 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=177982 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=177985 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=178473 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=178475 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=178595 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=178597 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=178709 - _PATTERNFLOWICMPECHOTYPE._serialized_start=178712 - _PATTERNFLOWICMPECHOTYPE._serialized_end=179155 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=179157 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=179277 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=179279 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=179391 - _PATTERNFLOWICMPECHOCODE._serialized_start=179394 - _PATTERNFLOWICMPECHOCODE._serialized_end=179837 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=179840 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=180185 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=180187 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=180313 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=180315 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=180433 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=180436 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=180909 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=180912 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=181042 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=181044 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=181166 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=181169 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=181662 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=181665 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=182016 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=182019 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=182151 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=182153 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=182277 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=182280 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=182783 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=182786 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=182922 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=182925 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=183053 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=183056 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=183579 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=183581 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=183703 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=183705 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=183819 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=183822 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=184275 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=184277 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=184399 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=184401 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=184515 - _PATTERNFLOWICMPV6ECHOCODE._serialized_start=184518 - _PATTERNFLOWICMPV6ECHOCODE._serialized_end=184971 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=184974 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=185102 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=185104 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=185224 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=185227 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=185710 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=185713 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=185845 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=185847 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=185971 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=185974 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=186477 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=186480 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=186831 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=186834 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=187191 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=187193 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=187311 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=187313 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=187423 - _PATTERNFLOWPPPADDRESS._serialized_start=187426 - _PATTERNFLOWPPPADDRESS._serialized_end=187859 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=98172 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=98258 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=187861 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=187979 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=187981 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=188091 - _PATTERNFLOWPPPCONTROL._serialized_start=188094 - _PATTERNFLOWPPPCONTROL._serialized_end=188527 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=98172 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=98258 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=188529 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=188652 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=188654 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=188769 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=188772 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=189268 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=97478 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=97574 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=189270 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=189391 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=189393 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=189506 - _PATTERNFLOWIGMPV1VERSION._serialized_start=189509 - _PATTERNFLOWIGMPV1VERSION._serialized_end=189957 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=189959 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=190077 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=190079 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=190189 - _PATTERNFLOWIGMPV1TYPE._serialized_start=190192 - _PATTERNFLOWIGMPV1TYPE._serialized_end=190625 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=190627 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=190747 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=190749 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=190861 - _PATTERNFLOWIGMPV1UNUSED._serialized_start=190864 - _PATTERNFLOWIGMPV1UNUSED._serialized_end=191307 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=191310 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=191649 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=191651 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=191777 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=191779 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=191897 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=191900 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=192373 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=192375 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=192492 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=192494 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=192603 - _PATTERNFLOWMPLSLABEL._serialized_start=192606 - _PATTERNFLOWMPLSLABEL._serialized_end=193072 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=97478 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=97574 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=193074 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=193198 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=193200 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=193316 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=193319 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=193782 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=98172 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=98258 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=193784 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=193909 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=193911 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=194028 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=194031 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=194537 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=97478 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=97574 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=194539 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=194661 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=194663 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=194777 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=194780 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=195233 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=98172 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=98258 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=98258 - _VERSION._serialized_start=195236 - _VERSION._serialized_end=195381 - _SUCCESS._serialized_start=195383 - _SUCCESS._serialized_end=195423 - _FAILURE._serialized_start=195425 - _FAILURE._serialized_end=195461 - _SETCONFIGREQUEST._serialized_start=195463 - _SETCONFIGREQUEST._serialized_end=195510 - _UPDATECONFIGREQUEST._serialized_start=195512 - _UPDATECONFIGREQUEST._serialized_end=195575 - _SETCONFIGRESPONSE._serialized_start=195577 - _SETCONFIGRESPONSE._serialized_end=195627 - _GETCONFIGRESPONSE._serialized_start=195629 - _GETCONFIGRESPONSE._serialized_end=195677 - _UPDATECONFIGRESPONSE._serialized_start=195679 - _UPDATECONFIGRESPONSE._serialized_end=195732 - _SETCONTROLSTATEREQUEST._serialized_start=195734 - _SETCONTROLSTATEREQUEST._serialized_end=195800 - _SETCONTROLSTATERESPONSE._serialized_start=195802 - _SETCONTROLSTATERESPONSE._serialized_end=195858 - _SETCONTROLACTIONREQUEST._serialized_start=195860 - _SETCONTROLACTIONREQUEST._serialized_end=195929 - _SETCONTROLACTIONRESPONSE._serialized_start=195931 - _SETCONTROLACTIONRESPONSE._serialized_end=196018 - _GETMETRICSREQUEST._serialized_start=196020 - _GETMETRICSREQUEST._serialized_end=196085 - _GETMETRICSRESPONSE._serialized_start=196087 - _GETMETRICSRESPONSE._serialized_end=196155 - _GETSTATESREQUEST._serialized_start=196157 - _GETSTATESREQUEST._serialized_end=196219 - _GETSTATESRESPONSE._serialized_start=196221 - _GETSTATESRESPONSE._serialized_end=196286 - _GETCAPTUREREQUEST._serialized_start=196288 - _GETCAPTUREREQUEST._serialized_end=196353 - _GETCAPTURERESPONSE._serialized_start=196355 - _GETCAPTURERESPONSE._serialized_end=196399 - _GETVERSIONRESPONSE._serialized_start=196401 - _GETVERSIONRESPONSE._serialized_end=196452 - _OPENAPI._serialized_start=196455 - _OPENAPI._serialized_end=197062 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=101681 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=101770 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=101699 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=101770 + _RSVPLSPIPV4RRO._serialized_start=101893 + _RSVPLSPIPV4RRO._serialized_end=101991 + _RSVPLSPIPV4ERO._serialized_start=101994 + _RSVPLSPIPV4ERO._serialized_end=102236 + _RSVPLSPIPV4ERO_TYPE._serialized_start=102101 + _RSVPLSPIPV4ERO_TYPE._serialized_end=102208 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=102109 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=102208 + _CAPTUREREQUEST._serialized_start=102238 + _CAPTUREREQUEST._serialized_end=102273 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=102275 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=102394 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=102396 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=102507 + _PATTERNFLOWETHERNETDST._serialized_start=102510 + _PATTERNFLOWETHERNETDST._serialized_end=102986 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=102832 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=102928 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=102988 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=103107 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=103109 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=103220 + _PATTERNFLOWETHERNETSRC._serialized_start=103223 + _PATTERNFLOWETHERNETSRC._serialized_end=103661 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=103663 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=103788 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=103790 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=103907 + _PATTERNFLOWETHERNETETHERTYPE._serialized_start=103910 + _PATTERNFLOWETHERNETETHERTYPE._serialized_end=104416 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=102832 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=102928 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=104418 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=104542 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=104544 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=104660 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=104663 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=105126 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=105128 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=105248 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=105250 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=105362 + _PATTERNFLOWVLANPRIORITY._serialized_start=105365 + _PATTERNFLOWVLANPRIORITY._serialized_end=105808 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANCFICOUNTER._serialized_start=105810 + _PATTERNFLOWVLANCFICOUNTER._serialized_end=105925 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=105927 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=106034 + _PATTERNFLOWVLANCFI._serialized_start=106037 + _PATTERNFLOWVLANCFI._serialized_end=106455 + _PATTERNFLOWVLANCFI_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANCFI_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANIDCOUNTER._serialized_start=106457 + _PATTERNFLOWVLANIDCOUNTER._serialized_end=106571 + _PATTERNFLOWVLANIDMETRICTAG._serialized_start=106573 + _PATTERNFLOWVLANIDMETRICTAG._serialized_end=106679 + _PATTERNFLOWVLANID._serialized_start=106682 + _PATTERNFLOWVLANID._serialized_end=107095 + _PATTERNFLOWVLANID_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANID_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=107097 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=107213 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=107215 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=107323 + _PATTERNFLOWVLANTPID._serialized_start=107326 + _PATTERNFLOWVLANTPID._serialized_end=107749 + _PATTERNFLOWVLANTPID_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANTPID_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=107751 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=107869 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=107871 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=107981 + _PATTERNFLOWVXLANFLAGS._serialized_start=107984 + _PATTERNFLOWVXLANFLAGS._serialized_end=108417 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=108419 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=108541 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=108543 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=108657 + _PATTERNFLOWVXLANRESERVED0._serialized_start=108660 + _PATTERNFLOWVXLANRESERVED0._serialized_end=109113 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANVNICOUNTER._serialized_start=109115 + _PATTERNFLOWVXLANVNICOUNTER._serialized_end=109231 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=109233 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=109341 + _PATTERNFLOWVXLANVNI._serialized_start=109344 + _PATTERNFLOWVXLANVNI._serialized_end=109805 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=102832 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=102928 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=109807 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=109929 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=109931 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=110045 + _PATTERNFLOWVXLANRESERVED1._serialized_start=110048 + _PATTERNFLOWVXLANRESERVED1._serialized_end=110501 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=110503 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=110622 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=110624 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=110735 + _PATTERNFLOWIPV4VERSION._serialized_start=110738 + _PATTERNFLOWIPV4VERSION._serialized_end=111176 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=111178 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=111302 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=111304 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=111420 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=111423 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=111924 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=111926 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=112049 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=112051 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=112166 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=112169 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=112665 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=112667 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=112793 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=112795 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=112913 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=112916 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=113389 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=113391 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=113511 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=113513 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=113625 + _PATTERNFLOWIPV4RESERVED._serialized_start=113628 + _PATTERNFLOWIPV4RESERVED._serialized_end=114071 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=114073 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=114197 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=114199 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=114315 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=114318 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=114781 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=114783 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=114908 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=114910 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=115027 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=115030 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=115498 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=115500 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=115626 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=115628 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=115746 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=115749 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=116222 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=116224 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=116346 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=116348 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=116462 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=116465 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=116918 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=116920 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=117040 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=117042 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=117154 + _PATTERNFLOWIPV4PROTOCOL._serialized_start=117157 + _PATTERNFLOWIPV4PROTOCOL._serialized_end=117638 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=117641 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=117992 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=117994 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=118109 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=118111 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=118218 + _PATTERNFLOWIPV4SRC._serialized_start=118221 + _PATTERNFLOWIPV4SRC._serialized_end=118639 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=118641 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=118756 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=118758 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=118865 + _PATTERNFLOWIPV4DST._serialized_start=118868 + _PATTERNFLOWIPV4DST._serialized_end=119286 + _PATTERNFLOWIPV4DST_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DST_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=119288 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=119411 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=119413 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=119528 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=119531 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=119989 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=119991 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=120110 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=120112 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=120223 + _PATTERNFLOWIPV4DSCPPHB._serialized_start=120226 + _PATTERNFLOWIPV4DSCPPHB._serialized_end=120664 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=120666 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=120785 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=120787 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=120898 + _PATTERNFLOWIPV4DSCPECN._serialized_start=120901 + _PATTERNFLOWIPV4DSCPECN._serialized_end=121339 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=121341 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=121466 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=121468 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=121585 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=121588 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=122056 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=122058 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=122178 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=122180 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=122292 + _PATTERNFLOWIPV4TOSDELAY._serialized_start=122295 + _PATTERNFLOWIPV4TOSDELAY._serialized_end=122738 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=122740 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=122865 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=122867 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=122984 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=122987 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=123455 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=123457 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=123583 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=123585 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=123703 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=123706 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=124179 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=124181 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=124304 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=124306 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=124421 + _PATTERNFLOWIPV4TOSMONETARY._serialized_start=124424 + _PATTERNFLOWIPV4TOSMONETARY._serialized_end=124882 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=124884 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=125005 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=125007 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=125120 + _PATTERNFLOWIPV4TOSUNUSED._serialized_start=125123 + _PATTERNFLOWIPV4TOSUNUSED._serialized_end=125571 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=125573 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=125692 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=125694 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=125805 + _PATTERNFLOWIPV6VERSION._serialized_start=125808 + _PATTERNFLOWIPV6VERSION._serialized_end=126246 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=126248 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=126372 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=126374 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=126490 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=126493 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=126956 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=126958 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=127079 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=127081 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=127194 + _PATTERNFLOWIPV6FLOWLABEL._serialized_start=127197 + _PATTERNFLOWIPV6FLOWLABEL._serialized_end=127645 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=127647 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=127772 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=127774 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=127891 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=127894 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=128400 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=128402 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=128524 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=128526 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=128640 + _PATTERNFLOWIPV6NEXTHEADER._serialized_start=128643 + _PATTERNFLOWIPV6NEXTHEADER._serialized_end=129134 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=129136 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=129256 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=129258 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=129370 + _PATTERNFLOWIPV6HOPLIMIT._serialized_start=129373 + _PATTERNFLOWIPV6HOPLIMIT._serialized_end=129816 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=129818 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=129933 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=129935 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=130042 + _PATTERNFLOWIPV6SRC._serialized_start=130045 + _PATTERNFLOWIPV6SRC._serialized_end=130463 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=130465 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=130580 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=130582 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=130689 + _PATTERNFLOWIPV6DST._serialized_start=130692 + _PATTERNFLOWIPV6DST._serialized_end=131110 + _PATTERNFLOWIPV6DST_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6DST_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=131112 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=131231 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=131233 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=131344 + _PATTERNFLOWPFCPAUSEDST._serialized_start=131347 + _PATTERNFLOWPFCPAUSEDST._serialized_end=131785 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=131787 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=131906 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=131908 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=132019 + _PATTERNFLOWPFCPAUSESRC._serialized_start=132022 + _PATTERNFLOWPFCPAUSESRC._serialized_end=132460 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=132462 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=132587 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=132589 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=132706 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=132709 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=133177 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=133180 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=133309 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=133311 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=133432 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=133435 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=133923 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=133926 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=134059 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=134061 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=134186 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=134189 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=134697 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=134699 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=134826 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=134828 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=134947 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=134950 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=135428 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=135430 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=135557 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=135559 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=135678 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=135681 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=136159 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=136161 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=136288 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=136290 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=136409 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=136412 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=136890 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=136892 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=137019 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=137021 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=137140 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=137143 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=137621 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=137623 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=137750 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=137752 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=137871 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=137874 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=138352 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=138354 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=138481 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=138483 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=138602 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=138605 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=139083 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=139085 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=139212 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=139214 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=139333 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=139336 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=139814 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=139816 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=139943 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=139945 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=140064 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=140067 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=140545 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=140547 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=140671 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=140673 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=140789 + _PATTERNFLOWETHERNETPAUSEDST._serialized_start=140792 + _PATTERNFLOWETHERNETPAUSEDST._serialized_end=141255 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=141257 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=141381 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=141383 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=141499 + _PATTERNFLOWETHERNETPAUSESRC._serialized_start=141502 + _PATTERNFLOWETHERNETPAUSESRC._serialized_end=141965 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=141968 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=142098 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=142100 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=142222 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=142225 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=142718 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=142721 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=142855 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=142857 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=142983 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=142986 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=143499 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=143501 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=143626 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=143628 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=143745 + _PATTERNFLOWETHERNETPAUSETIME._serialized_start=143748 + _PATTERNFLOWETHERNETPAUSETIME._serialized_end=144216 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=144218 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=144336 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=144338 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=144448 + _PATTERNFLOWTCPSRCPORT._serialized_start=144451 + _PATTERNFLOWTCPSRCPORT._serialized_end=144884 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=144886 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=145004 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=145006 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=145116 + _PATTERNFLOWTCPDSTPORT._serialized_start=145119 + _PATTERNFLOWTCPDSTPORT._serialized_end=145552 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=145554 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=145671 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=145673 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=145782 + _PATTERNFLOWTCPSEQNUM._serialized_start=145785 + _PATTERNFLOWTCPSEQNUM._serialized_end=146213 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=146215 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=146332 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=146334 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=146443 + _PATTERNFLOWTCPACKNUM._serialized_start=146446 + _PATTERNFLOWTCPACKNUM._serialized_end=146874 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=146876 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=146997 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=146999 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=147112 + _PATTERNFLOWTCPDATAOFFSET._serialized_start=147115 + _PATTERNFLOWTCPDATAOFFSET._serialized_end=147563 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=147565 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=147681 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=147683 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=147791 + _PATTERNFLOWTCPECNNS._serialized_start=147794 + _PATTERNFLOWTCPECNNS._serialized_end=148217 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=148219 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=148336 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=148338 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=148447 + _PATTERNFLOWTCPECNCWR._serialized_start=148450 + _PATTERNFLOWTCPECNCWR._serialized_end=148878 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=148880 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=148998 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=149000 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=149110 + _PATTERNFLOWTCPECNECHO._serialized_start=149113 + _PATTERNFLOWTCPECNECHO._serialized_end=149546 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=149548 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=149665 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=149667 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=149776 + _PATTERNFLOWTCPCTLURG._serialized_start=149779 + _PATTERNFLOWTCPCTLURG._serialized_end=150207 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=150209 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=150326 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=150328 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=150437 + _PATTERNFLOWTCPCTLACK._serialized_start=150440 + _PATTERNFLOWTCPCTLACK._serialized_end=150868 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=150870 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=150987 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=150989 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=151098 + _PATTERNFLOWTCPCTLPSH._serialized_start=151101 + _PATTERNFLOWTCPCTLPSH._serialized_end=151529 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=151531 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=151648 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=151650 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=151759 + _PATTERNFLOWTCPCTLRST._serialized_start=151762 + _PATTERNFLOWTCPCTLRST._serialized_end=152190 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=152192 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=152309 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=152311 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=152420 + _PATTERNFLOWTCPCTLSYN._serialized_start=152423 + _PATTERNFLOWTCPCTLSYN._serialized_end=152851 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=152853 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=152970 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=152972 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=153081 + _PATTERNFLOWTCPCTLFIN._serialized_start=153084 + _PATTERNFLOWTCPCTLFIN._serialized_end=153512 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=153514 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=153631 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=153633 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=153742 + _PATTERNFLOWTCPWINDOW._serialized_start=153745 + _PATTERNFLOWTCPWINDOW._serialized_end=154173 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=154175 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=154293 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=154295 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=154405 + _PATTERNFLOWUDPSRCPORT._serialized_start=154408 + _PATTERNFLOWUDPSRCPORT._serialized_end=154841 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=154843 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=154961 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=154963 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=155073 + _PATTERNFLOWUDPDSTPORT._serialized_start=155076 + _PATTERNFLOWUDPDSTPORT._serialized_end=155509 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=155511 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=155628 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=155630 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=155739 + _PATTERNFLOWUDPLENGTH._serialized_start=155742 + _PATTERNFLOWUDPLENGTH._serialized_end=156170 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPCHECKSUM._serialized_start=156173 + _PATTERNFLOWUDPCHECKSUM._serialized_end=156503 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=156505 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=156631 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=156633 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=156751 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=156754 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=157227 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=103526 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=103612 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=157229 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=157349 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=157351 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=157463 + _PATTERNFLOWGRERESERVED0._serialized_start=157466 + _PATTERNFLOWGRERESERVED0._serialized_end=157909 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=103526 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=103612 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=157911 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=158029 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=158031 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=158141 + _PATTERNFLOWGREVERSION._serialized_start=158144 + _PATTERNFLOWGREVERSION._serialized_end=158577 + _PATTERNFLOWGREVERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGREVERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=158579 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=158698 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=158700 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=158811 + _PATTERNFLOWGREPROTOCOL._serialized_start=158814 + _PATTERNFLOWGREPROTOCOL._serialized_end=159252 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=103526 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=103612 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGRECHECKSUM._serialized_start=159255 + _PATTERNFLOWGRECHECKSUM._serialized_end=159585 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=159587 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=159707 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=159709 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=159821 + _PATTERNFLOWGRERESERVED1._serialized_start=159824 + _PATTERNFLOWGRERESERVED1._serialized_end=160267 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=103526 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=103612 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=160269 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=160389 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=160391 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=160503 + _PATTERNFLOWGTPV1VERSION._serialized_start=160506 + _PATTERNFLOWGTPV1VERSION._serialized_end=160949 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=160951 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=161076 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=161078 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=161195 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=161198 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=161666 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=161668 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=161789 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=161791 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=161904 + _PATTERNFLOWGTPV1RESERVED._serialized_start=161907 + _PATTERNFLOWGTPV1RESERVED._serialized_end=162355 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=162357 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=162475 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=162477 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=162587 + _PATTERNFLOWGTPV1EFLAG._serialized_start=162590 + _PATTERNFLOWGTPV1EFLAG._serialized_end=163023 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=163025 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=163143 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=163145 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=163255 + _PATTERNFLOWGTPV1SFLAG._serialized_start=163258 + _PATTERNFLOWGTPV1SFLAG._serialized_end=163691 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=163693 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=163812 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=163814 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=163925 + _PATTERNFLOWGTPV1PNFLAG._serialized_start=163928 + _PATTERNFLOWGTPV1PNFLAG._serialized_end=164366 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=164368 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=164492 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=164494 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=164610 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=164613 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=165076 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=165078 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=165204 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=165206 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=165324 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=165327 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=165800 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=165802 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=165919 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=165921 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=166030 + _PATTERNFLOWGTPV1TEID._serialized_start=166033 + _PATTERNFLOWGTPV1TEID._serialized_end=166461 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=166463 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=166589 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=166591 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=166709 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=166712 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=167185 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=167187 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=167310 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=167312 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=167427 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=167430 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=167888 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=167891 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=168027 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=168030 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=168158 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=168161 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=168684 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=168687 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=168822 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=168824 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=168951 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=168954 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=169472 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=169475 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=169603 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=169605 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=169725 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=169728 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=170211 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=170214 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=170353 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=170356 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=170487 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=170490 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=171028 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=171030 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=171150 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=171152 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=171264 + _PATTERNFLOWGTPV2VERSION._serialized_start=171267 + _PATTERNFLOWGTPV2VERSION._serialized_end=171710 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=171713 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=171842 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=171844 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=171965 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=171968 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=172456 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=172458 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=172579 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=172581 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=172694 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=172697 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=173145 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=173147 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=173266 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=173268 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=173379 + _PATTERNFLOWGTPV2SPARE1._serialized_start=173382 + _PATTERNFLOWGTPV2SPARE1._serialized_end=173820 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=173822 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=173946 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=173948 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=174064 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=174067 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=174530 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=174532 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=174658 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=174660 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=174778 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=174781 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=175254 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=175256 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=175373 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=175375 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=175484 + _PATTERNFLOWGTPV2TEID._serialized_start=175487 + _PATTERNFLOWGTPV2TEID._serialized_end=175915 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=175917 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=176044 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=176046 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=176165 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=176168 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=176646 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=176648 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=176767 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=176769 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=176880 + _PATTERNFLOWGTPV2SPARE2._serialized_start=176883 + _PATTERNFLOWGTPV2SPARE2._serialized_end=177321 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=177323 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=177446 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=177448 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=177563 + _PATTERNFLOWARPHARDWARETYPE._serialized_start=177566 + _PATTERNFLOWARPHARDWARETYPE._serialized_end=178024 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=178026 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=178149 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=178151 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=178266 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=178269 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=178727 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=178729 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=178854 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=178856 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=178973 + _PATTERNFLOWARPHARDWARELENGTH._serialized_start=178976 + _PATTERNFLOWARPHARDWARELENGTH._serialized_end=179444 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=179446 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=179571 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=179573 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=179690 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=179693 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=180161 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=180163 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=180283 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=180285 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=180397 + _PATTERNFLOWARPOPERATION._serialized_start=180400 + _PATTERNFLOWARPOPERATION._serialized_end=180843 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=103526 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=103612 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=180846 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=180975 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=180977 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=181098 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=181101 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=181589 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=181592 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=181721 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=181723 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=181844 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=181847 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=182335 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=182338 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=182467 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=182469 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=182590 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=182593 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=183081 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=183084 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=183213 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=183215 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=183336 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=183339 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=183827 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=183829 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=183949 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=183951 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=184063 + _PATTERNFLOWICMPECHOTYPE._serialized_start=184066 + _PATTERNFLOWICMPECHOTYPE._serialized_end=184509 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=184511 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=184631 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=184633 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=184745 + _PATTERNFLOWICMPECHOCODE._serialized_start=184748 + _PATTERNFLOWICMPECHOCODE._serialized_end=185191 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=185194 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=185539 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=185541 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=185667 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=185669 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=185787 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=185790 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=186263 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=186266 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=186396 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=186398 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=186520 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=186523 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=187016 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=187019 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=187370 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=187373 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=187505 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=187507 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=187631 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=187634 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=188137 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=188140 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=188276 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=188279 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=188407 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=188410 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=188933 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=188935 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=189057 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=189059 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=189173 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=189176 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=189629 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=189631 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=189753 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=189755 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=189869 + _PATTERNFLOWICMPV6ECHOCODE._serialized_start=189872 + _PATTERNFLOWICMPV6ECHOCODE._serialized_end=190325 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=190328 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=190456 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=190458 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=190578 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=190581 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=191064 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=191067 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=191199 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=191201 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=191325 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=191328 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=191831 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=191834 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=192185 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=192188 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=192545 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=192547 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=192665 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=192667 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=192777 + _PATTERNFLOWPPPADDRESS._serialized_start=192780 + _PATTERNFLOWPPPADDRESS._serialized_end=193213 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=103526 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=103612 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=193215 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=193333 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=193335 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=193445 + _PATTERNFLOWPPPCONTROL._serialized_start=193448 + _PATTERNFLOWPPPCONTROL._serialized_end=193881 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=103526 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=103612 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=193883 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=194006 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=194008 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=194123 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=194126 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=194622 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=102832 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=102928 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=194624 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=194745 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=194747 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=194860 + _PATTERNFLOWIGMPV1VERSION._serialized_start=194863 + _PATTERNFLOWIGMPV1VERSION._serialized_end=195311 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=195313 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=195431 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=195433 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=195543 + _PATTERNFLOWIGMPV1TYPE._serialized_start=195546 + _PATTERNFLOWIGMPV1TYPE._serialized_end=195979 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=195981 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=196101 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=196103 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=196215 + _PATTERNFLOWIGMPV1UNUSED._serialized_start=196218 + _PATTERNFLOWIGMPV1UNUSED._serialized_end=196661 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=196664 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=197003 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=197005 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=197131 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=197133 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=197251 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=197254 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=197727 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=197729 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=197846 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=197848 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=197957 + _PATTERNFLOWMPLSLABEL._serialized_start=197960 + _PATTERNFLOWMPLSLABEL._serialized_end=198426 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=102832 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=102928 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=198428 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=198552 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=198554 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=198670 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=198673 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=199136 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=103526 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=103612 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=199138 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=199263 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=199265 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=199382 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=199385 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=199891 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=102832 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=102928 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=199893 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=200015 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=200017 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=200131 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=200134 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=200587 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=103526 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=103612 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=103612 + _VERSION._serialized_start=200590 + _VERSION._serialized_end=200735 + _SUCCESS._serialized_start=200737 + _SUCCESS._serialized_end=200777 + _FAILURE._serialized_start=200779 + _FAILURE._serialized_end=200815 + _SETCONFIGREQUEST._serialized_start=200817 + _SETCONFIGREQUEST._serialized_end=200864 + _UPDATECONFIGREQUEST._serialized_start=200866 + _UPDATECONFIGREQUEST._serialized_end=200929 + _SETCONFIGRESPONSE._serialized_start=200931 + _SETCONFIGRESPONSE._serialized_end=200981 + _GETCONFIGRESPONSE._serialized_start=200983 + _GETCONFIGRESPONSE._serialized_end=201031 + _UPDATECONFIGRESPONSE._serialized_start=201033 + _UPDATECONFIGRESPONSE._serialized_end=201086 + _SETCONTROLSTATEREQUEST._serialized_start=201088 + _SETCONTROLSTATEREQUEST._serialized_end=201154 + _SETCONTROLSTATERESPONSE._serialized_start=201156 + _SETCONTROLSTATERESPONSE._serialized_end=201212 + _SETCONTROLACTIONREQUEST._serialized_start=201214 + _SETCONTROLACTIONREQUEST._serialized_end=201283 + _SETCONTROLACTIONRESPONSE._serialized_start=201285 + _SETCONTROLACTIONRESPONSE._serialized_end=201372 + _GETMETRICSREQUEST._serialized_start=201374 + _GETMETRICSREQUEST._serialized_end=201439 + _GETMETRICSRESPONSE._serialized_start=201441 + _GETMETRICSRESPONSE._serialized_end=201509 + _GETSTATESREQUEST._serialized_start=201511 + _GETSTATESREQUEST._serialized_end=201573 + _GETSTATESRESPONSE._serialized_start=201575 + _GETSTATESRESPONSE._serialized_end=201640 + _GETCAPTUREREQUEST._serialized_start=201642 + _GETCAPTUREREQUEST._serialized_end=201707 + _GETCAPTURERESPONSE._serialized_start=201709 + _GETCAPTURERESPONSE._serialized_end=201753 + _GETVERSIONRESPONSE._serialized_start=201755 + _GETVERSIONRESPONSE._serialized_end=201806 + _OPENAPI._serialized_start=201809 + _OPENAPI._serialized_end=202416 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index bd2c5cdb..940741f2 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.12.2 +# Open Traffic Generator API 0.12.3 # License: MIT import importlib @@ -13413,6 +13413,7 @@ class BgpV4RouteRange(OpenApiObject): "add_path": {"type": "BgpAddPath"}, "name": {"type": str}, "ext_communities": {"type": "BgpExtCommunityIter"}, + "extended_communities": {"type": "BgpExtendedCommunityIter"}, } # type: Dict[str, str] _REQUIRED = ("name",) # type: tuple(str) @@ -13430,265 +13431,2024 @@ class BgpV4RouteRange(OpenApiObject): IPV4 = "ipv4" # type: str IPV6 = "ipv6" # type: str + _STATUS = { + "ext_communities": "ext_communities property in schema BgpV4RouteRange is deprecated, This property is deprecated in favor of property extended_communities", + } # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + next_hop_mode="local_ip", + next_hop_address_type="ipv4", + next_hop_ipv4_address="0.0.0.0", + next_hop_ipv6_address="::0", + name=None, + ): + super(BgpV4RouteRange, self).__init__() + self._parent = parent + self._set_property("next_hop_mode", next_hop_mode) + self._set_property("next_hop_address_type", next_hop_address_type) + self._set_property("next_hop_ipv4_address", next_hop_ipv4_address) + self._set_property("next_hop_ipv6_address", next_hop_ipv6_address) + self._set_property("name", name) + + def set( + self, + next_hop_mode=None, + next_hop_address_type=None, + next_hop_ipv4_address=None, + next_hop_ipv6_address=None, + name=None, + ): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def addresses(self): + # type: () -> V4RouteAddressIter + """addresses getter + + A list of group of IPv4 route addresses. + + Returns: V4RouteAddressIter + """ + return self._get_property( + "addresses", V4RouteAddressIter, self._parent, self._choice + ) + + @property + def next_hop_mode(self): + # type: () -> Union[Literal["local_ip"], Literal["manual"]] + """next_hop_mode getter + + Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + + Returns: Union[Literal["local_ip"], Literal["manual"]] + """ + return self._get_property("next_hop_mode") + + @next_hop_mode.setter + def next_hop_mode(self, value): + """next_hop_mode setter + + Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + + value: Union[Literal["local_ip"], Literal["manual"]] + """ + self._set_property("next_hop_mode", value) + + @property + def next_hop_address_type(self): + # type: () -> Union[Literal["ipv4"], Literal["ipv6"]] + """next_hop_address_type getter + + If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + + Returns: Union[Literal["ipv4"], Literal["ipv6"]] + """ + return self._get_property("next_hop_address_type") + + @next_hop_address_type.setter + def next_hop_address_type(self, value): + """next_hop_address_type setter + + If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + + value: Union[Literal["ipv4"], Literal["ipv6"]] + """ + self._set_property("next_hop_address_type", value) + + @property + def next_hop_ipv4_address(self): + # type: () -> str + """next_hop_ipv4_address getter + + The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + + Returns: str + """ + return self._get_property("next_hop_ipv4_address") + + @next_hop_ipv4_address.setter + def next_hop_ipv4_address(self, value): + """next_hop_ipv4_address setter + + The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + + value: str + """ + self._set_property("next_hop_ipv4_address", value) + + @property + def next_hop_ipv6_address(self): + # type: () -> str + """next_hop_ipv6_address getter + + The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + + Returns: str + """ + return self._get_property("next_hop_ipv6_address") + + @next_hop_ipv6_address.setter + def next_hop_ipv6_address(self, value): + """next_hop_ipv6_address setter + + The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + + value: str + """ + self._set_property("next_hop_ipv6_address", value) + + @property + def advanced(self): + # type: () -> BgpRouteAdvanced + """advanced getter + + Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings. + + Returns: BgpRouteAdvanced + """ + return self._get_property("advanced", BgpRouteAdvanced) + + @property + def communities(self): + # type: () -> BgpCommunityIter + """communities getter + + Optional community settings. + + Returns: BgpCommunityIter + """ + return self._get_property( + "communities", BgpCommunityIter, self._parent, self._choice + ) + + @property + def as_path(self): + # type: () -> BgpAsPath + """as_path getter + + This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination. + + Returns: BgpAsPath + """ + return self._get_property("as_path", BgpAsPath) + + @property + def add_path(self): + # type: () -> BgpAddPath + """add_path getter + + The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths. + + Returns: BgpAddPath + """ + return self._get_property("add_path", BgpAddPath) + + @property + def name(self): + # type: () -> str + """name getter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def ext_communities(self): + # type: () -> BgpExtCommunityIter + """ext_communities getter + + Deprecated: This property is deprecated in favor of property extended_communities. Deprecated: This property is deprecated in favor of property extended_communities. Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + + Returns: BgpExtCommunityIter + """ + return self._get_property( + "ext_communities", BgpExtCommunityIter, self._parent, self._choice + ) + + @property + def extended_communities(self): + # type: () -> BgpExtendedCommunityIter + """extended_communities getter + + Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode type and sub-type fields and the last six bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + return self._get_property( + "extended_communities", BgpExtendedCommunityIter, self._parent, self._choice + ) + + +class BgpAddPath(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "path_id": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "path_id": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, path_id=1): + super(BgpAddPath, self).__init__() + self._parent = parent + self._set_property("path_id", path_id) + + def set(self, path_id=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def path_id(self): + # type: () -> int + """path_id getter + + The id of the additional path. + + Returns: int + """ + return self._get_property("path_id") + + @path_id.setter + def path_id(self, value): + """path_id setter + + The id of the additional path. + + value: int + """ + self._set_property("path_id", value) + + +class BgpExtendedCommunity(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "transitive_2octet_as_type", + "transitive_ipv4_address_type", + "transitive_4octet_as_type", + "transitive_opaque_type", + "transitive_evpn_type", + "non_transitive_2octet_as_type", + "custom", + ], + }, + "transitive_2octet_as_type": { + "type": "BgpExtendedCommunityTransitive2OctetAsType" + }, + "transitive_ipv4_address_type": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressType" + }, + "transitive_4octet_as_type": { + "type": "BgpExtendedCommunityTransitive4OctetAsType" + }, + "transitive_opaque_type": {"type": "BgpExtendedCommunityTransitiveOpaqueType"}, + "transitive_evpn_type": {"type": "BgpExtendedCommunityTransitiveEvpnType"}, + "non_transitive_2octet_as_type": { + "type": "BgpExtendedCommunityNonTransitive2OctetAsType" + }, + "custom": {"type": "BgpExtendedCommunityCustomType"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "transitive_2octet_as_type", + } # type: Dict[str, Union(type)] + + TRANSITIVE_2OCTET_AS_TYPE = "transitive_2octet_as_type" # type: str + TRANSITIVE_IPV4_ADDRESS_TYPE = "transitive_ipv4_address_type" # type: str + TRANSITIVE_4OCTET_AS_TYPE = "transitive_4octet_as_type" # type: str + TRANSITIVE_OPAQUE_TYPE = "transitive_opaque_type" # type: str + TRANSITIVE_EVPN_TYPE = "transitive_evpn_type" # type: str + NON_TRANSITIVE_2OCTET_AS_TYPE = "non_transitive_2octet_as_type" # type: str + CUSTOM = "custom" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunity, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsType class + + The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 + + Returns: BgpExtendedCommunityTransitive2OctetAsType + """ + return self._get_property( + "transitive_2octet_as_type", + BgpExtendedCommunityTransitive2OctetAsType, + self, + "transitive_2octet_as_type", + ) + + @property + def transitive_ipv4_address_type(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressType class + + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressType + """ + return self._get_property( + "transitive_ipv4_address_type", + BgpExtendedCommunityTransitiveIpv4AddressType, + self, + "transitive_ipv4_address_type", + ) + + @property + def transitive_4octet_as_type(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsType class + + The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + + Returns: BgpExtendedCommunityTransitive4OctetAsType + """ + return self._get_property( + "transitive_4octet_as_type", + BgpExtendedCommunityTransitive4OctetAsType, + self, + "transitive_4octet_as_type", + ) + + @property + def transitive_opaque_type(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueType class + + The Transitive Opaque Extended Community is sent as type 0x03. + + Returns: BgpExtendedCommunityTransitiveOpaqueType + """ + return self._get_property( + "transitive_opaque_type", + BgpExtendedCommunityTransitiveOpaqueType, + self, + "transitive_opaque_type", + ) + + @property + def transitive_evpn_type(self): + # type: () -> BgpExtendedCommunityTransitiveEvpnType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveEvpnType class + + The Transitive EVPN Extended Community is sent as type 0x06 + + Returns: BgpExtendedCommunityTransitiveEvpnType + """ + return self._get_property( + "transitive_evpn_type", + BgpExtendedCommunityTransitiveEvpnType, + self, + "transitive_evpn_type", + ) + + @property + def non_transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityNonTransitive2OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityNonTransitive2OctetAsType class + + The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + + Returns: BgpExtendedCommunityNonTransitive2OctetAsType + """ + return self._get_property( + "non_transitive_2octet_as_type", + BgpExtendedCommunityNonTransitive2OctetAsType, + self, + "non_transitive_2octet_as_type", + ) + + @property + def custom(self): + # type: () -> BgpExtendedCommunityCustomType + """Factory property that returns an instance of the BgpExtendedCommunityCustomType class + + Add custom Extended Community with combination of types sub-types and values not explicitly specified above or not defined yet. + + Returns: BgpExtendedCommunityCustomType + """ + return self._get_property( + "custom", BgpExtendedCommunityCustomType, self, "custom" + ) + + @property + def choice(self): + # type: () -> Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """choice getter + + TBD + + Returns: Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive2OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitive2OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + + Returns: BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + + Returns: BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_2byte_as": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "local_4byte_admin": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_2byte_as": 100, + "local_4byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_2byte_as=100, local_4byte_admin=1): + super(BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("local_4byte_admin", local_4byte_admin) + + def set(self, global_2byte_as=None, local_4byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_2byte_as(self): + # type: () -> int + """global_2byte_as getter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_2byte_as") + + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_2byte_as", value) + + @property + def local_4byte_admin(self): + # type: () -> int + """local_4byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_4byte_admin") + + @local_4byte_admin.setter + def local_4byte_admin(self, value): + """local_4byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_4byte_admin", value) + + +class BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_2byte_as": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "local_4byte_admin": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_2byte_as": 100, + "local_4byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_2byte_as=100, local_4byte_admin=1): + super(BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("local_4byte_admin", local_4byte_admin) + + def set(self, global_2byte_as=None, local_4byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_2byte_as(self): + # type: () -> int + """global_2byte_as getter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_2byte_as") + + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_2byte_as", value) + + @property + def local_4byte_admin(self): + # type: () -> int + """local_4byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_4byte_admin") + + @local_4byte_admin.setter + def local_4byte_admin(self, value): + """local_4byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_4byte_admin", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveIpv4AddressType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_ipv4_admin": { + "type": str, + "format": "ipv4", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_ipv4_admin": "0.0.0.0", + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_ipv4_admin="0.0.0.0", local_2byte_admin=1): + super(BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_ipv4_admin", global_ipv4_admin) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_ipv4_admin=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_ipv4_admin(self): + # type: () -> str + """global_ipv4_admin getter + + An IPv4 unicast address assigned by one of the Internet registries. + + Returns: str + """ + return self._get_property("global_ipv4_admin") + + @global_ipv4_admin.setter + def global_ipv4_admin(self, value): + """global_ipv4_admin setter + + An IPv4 unicast address assigned by one of the Internet registries. + + value: str + """ + self._set_property("global_ipv4_admin", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_ipv4_admin": { + "type": str, + "format": "ipv4", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_ipv4_admin": "0.0.0.0", + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_ipv4_admin="0.0.0.0", local_2byte_admin=1): + super(BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_ipv4_admin", global_ipv4_admin) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_ipv4_admin=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_ipv4_admin(self): + # type: () -> str + """global_ipv4_admin getter + + An IPv4 unicast address assigned by one of the Internet registries. + + Returns: str + """ + return self._get_property("global_ipv4_admin") + + @global_ipv4_admin.setter + def global_ipv4_admin(self, value): + """global_ipv4_admin setter + + An IPv4 unicast address assigned by one of the Internet registries. + + value: str + """ + self._set_property("global_ipv4_admin", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitive4OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitive4OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + + Returns: BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + + Returns: BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_4byte_as": { + "type": int, + "format": "uint32", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_4byte_as": 100, + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_4byte_as=100, local_2byte_admin=1): + super(BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_4byte_as", global_4byte_as) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_4byte_as=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_4byte_as(self): + # type: () -> int + """global_4byte_as getter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_4byte_as") + + @global_4byte_as.setter + def global_4byte_as(self, value): + """global_4byte_as setter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_4byte_as", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_4byte_as": { + "type": int, + "format": "uint32", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_4byte_as": 100, + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_4byte_as=100, local_2byte_admin=1): + super(BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_4byte_as", global_4byte_as) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_4byte_as=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_4byte_as(self): + # type: () -> int + """global_4byte_as getter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_4byte_as") + + @global_4byte_as.setter + def global_4byte_as(self, value): + """global_4byte_as setter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_4byte_as", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitiveOpaqueType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "color_subtype", + "encapsulation_subtype", + ], + }, + "color_subtype": {"type": "BgpExtendedCommunityTransitiveOpaqueTypeColor"}, + "encapsulation_subtype": { + "type": "BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "color_subtype", + } # type: Dict[str, Union(type)] + + COLOR_SUBTYPE = "color_subtype" # type: str + ENCAPSULATION_SUBTYPE = "encapsulation_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveOpaqueType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def color_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueTypeColor + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueTypeColor class + + The Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether data packet can be transmitted on certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + + Returns: BgpExtendedCommunityTransitiveOpaqueTypeColor + """ + return self._get_property( + "color_subtype", + BgpExtendedCommunityTransitiveOpaqueTypeColor, + self, + "color_subtype", + ) + + @property + def encapsulation_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation class + + This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + + Returns: BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + """ + return self._get_property( + "encapsulation_subtype", + BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, + self, + "encapsulation_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveOpaqueTypeColor(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "flags": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "color": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "flags": 0, + "color": 0, + } # type: Dict[str, Union(type)] + _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - next_hop_mode="local_ip", - next_hop_address_type="ipv4", - next_hop_ipv4_address="0.0.0.0", - next_hop_ipv6_address="::0", - name=None, - ): - super(BgpV4RouteRange, self).__init__() + def __init__(self, parent=None, flags=0, color=0): + super(BgpExtendedCommunityTransitiveOpaqueTypeColor, self).__init__() self._parent = parent - self._set_property("next_hop_mode", next_hop_mode) - self._set_property("next_hop_address_type", next_hop_address_type) - self._set_property("next_hop_ipv4_address", next_hop_ipv4_address) - self._set_property("next_hop_ipv6_address", next_hop_ipv6_address) - self._set_property("name", name) + self._set_property("flags", flags) + self._set_property("color", color) - def set( - self, - next_hop_mode=None, - next_hop_address_type=None, - next_hop_ipv4_address=None, - next_hop_ipv6_address=None, - name=None, - ): + def set(self, flags=None, color=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @property - def addresses(self): - # type: () -> V4RouteAddressIter - """addresses getter + def flags(self): + # type: () -> int + """flags getter - A list of group of IPv4 route addresses. + Two octet flag values. - Returns: V4RouteAddressIter + Returns: int """ - return self._get_property( - "addresses", V4RouteAddressIter, self._parent, self._choice - ) + return self._get_property("flags") - @property - def next_hop_mode(self): - # type: () -> Union[Literal["local_ip"], Literal["manual"]] - """next_hop_mode getter + @flags.setter + def flags(self, value): + """flags setter - Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + Two octet flag values. - Returns: Union[Literal["local_ip"], Literal["manual"]] + value: int """ - return self._get_property("next_hop_mode") + self._set_property("flags", value) - @next_hop_mode.setter - def next_hop_mode(self, value): - """next_hop_mode setter + @property + def color(self): + # type: () -> int + """color getter - Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + The color value is user defined and configured locally and used to determine whether data packet can be transmitted on certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. - value: Union[Literal["local_ip"], Literal["manual"]] + Returns: int """ - self._set_property("next_hop_mode", value) + return self._get_property("color") - @property - def next_hop_address_type(self): - # type: () -> Union[Literal["ipv4"], Literal["ipv6"]] - """next_hop_address_type getter + @color.setter + def color(self, value): + """color setter - If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + The color value is user defined and configured locally and used to determine whether data packet can be transmitted on certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. - Returns: Union[Literal["ipv4"], Literal["ipv6"]] + value: int """ - return self._get_property("next_hop_address_type") + self._set_property("color", value) - @next_hop_address_type.setter - def next_hop_address_type(self, value): - """next_hop_address_type setter - If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. +class BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation(OpenApiObject): + __slots__ = "_parent" - value: Union[Literal["ipv4"], Literal["ipv6"]] - """ - self._set_property("next_hop_address_type", value) + _TYPES = { + "reserved": { + "type": int, + "format": "uint32", + }, + "tunnel_type": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "reserved": 0, + "tunnel_type": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, reserved=0, tunnel_type=1): + super(BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, self).__init__() + self._parent = parent + self._set_property("reserved", reserved) + self._set_property("tunnel_type", tunnel_type) + + def set(self, reserved=None, tunnel_type=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) @property - def next_hop_ipv4_address(self): - # type: () -> str - """next_hop_ipv4_address getter + def reserved(self): + # type: () -> int + """reserved getter - The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + Four bytes of reserved values. Normally set to on transmit and ignored on receive. - Returns: str + Returns: int """ - return self._get_property("next_hop_ipv4_address") + return self._get_property("reserved") - @next_hop_ipv4_address.setter - def next_hop_ipv4_address(self, value): - """next_hop_ipv4_address setter + @reserved.setter + def reserved(self, value): + """reserved setter - The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + Four bytes of reserved values. Normally set to on transmit and ignored on receive. - value: str + value: int """ - self._set_property("next_hop_ipv4_address", value) + self._set_property("reserved", value) @property - def next_hop_ipv6_address(self): - # type: () -> str - """next_hop_ipv6_address getter + def tunnel_type(self): + # type: () -> int + """tunnel_type getter - The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include L2TPv3 over IP [RFC9012], 2 GRE [RFC9012]. IP in IP [RFC9012]. VXLAN Encapsulation [RFC8365]. NVGRE Encapsulation [RFC8365]. 10 MPLS Encapsulation [RFC8365]. 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy]. 19 Geneve Encapsulation [RFC8926] - Returns: str + Returns: int """ - return self._get_property("next_hop_ipv6_address") + return self._get_property("tunnel_type") - @next_hop_ipv6_address.setter - def next_hop_ipv6_address(self, value): - """next_hop_ipv6_address setter + @tunnel_type.setter + def tunnel_type(self, value): + """tunnel_type setter - The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include L2TPv3 over IP [RFC9012], 2 GRE [RFC9012]. IP in IP [RFC9012]. VXLAN Encapsulation [RFC8365]. NVGRE Encapsulation [RFC8365]. 10 MPLS Encapsulation [RFC8365]. 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy]. 19 Geneve Encapsulation [RFC8926] - value: str + value: int """ - self._set_property("next_hop_ipv6_address", value) + self._set_property("tunnel_type", value) - @property - def advanced(self): - # type: () -> BgpRouteAdvanced - """advanced getter - Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings. +class BgpExtendedCommunityTransitiveEvpnType(OpenApiObject): + __slots__ = ("_parent", "_choice") - Returns: BgpRouteAdvanced - """ - return self._get_property("advanced", BgpRouteAdvanced) + _TYPES = { + "choice": { + "type": str, + "enum": [ + "router_mac_subtype", + ], + }, + "router_mac_subtype": { + "type": "BgpExtendedCommunityTransitiveEvpnTypeRouterMac" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "router_mac_subtype", + } # type: Dict[str, Union(type)] + + ROUTER_MAC_SUBTYPE = "router_mac_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveEvpnType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) @property - def communities(self): - # type: () -> BgpCommunityIter - """communities getter + def router_mac_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveEvpnTypeRouterMac + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveEvpnTypeRouterMac class - Optional community settings. + The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes It is sent with sub-type 0x03. - Returns: BgpCommunityIter + Returns: BgpExtendedCommunityTransitiveEvpnTypeRouterMac """ return self._get_property( - "communities", BgpCommunityIter, self._parent, self._choice + "router_mac_subtype", + BgpExtendedCommunityTransitiveEvpnTypeRouterMac, + self, + "router_mac_subtype", ) @property - def as_path(self): - # type: () -> BgpAsPath - """as_path getter + def choice(self): + # type: () -> Union[Literal["router_mac_subtype"]] + """choice getter - This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination. + TBD - Returns: BgpAsPath + Returns: Union[Literal["router_mac_subtype"]] """ - return self._get_property("as_path", BgpAsPath) + return self._get_property("choice") - @property - def add_path(self): - # type: () -> BgpAddPath - """add_path getter + @choice.setter + def choice(self, value): + """choice setter - The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths. + TBD - Returns: BgpAddPath + value: Union[Literal["router_mac_subtype"]] """ - return self._get_property("add_path", BgpAddPath) + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveEvpnTypeRouterMac(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "router_mac": { + "type": str, + "format": "mac", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "router_mac": "0:0:0:0:0:0", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, router_mac="0:0:0:0:0:0"): + super(BgpExtendedCommunityTransitiveEvpnTypeRouterMac, self).__init__() + self._parent = parent + self._set_property("router_mac", router_mac) + + def set(self, router_mac=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) @property - def name(self): + def router_mac(self): # type: () -> str - """name getter + """router_mac getter - Globally unique name of an object. It also serves as the primary key for arrays of objects. + MAC Address of the PE Router. Returns: str """ - return self._get_property("name") + return self._get_property("router_mac") - @name.setter - def name(self, value): - """name setter + @router_mac.setter + def router_mac(self, value): + """router_mac setter - Globally unique name of an object. It also serves as the primary key for arrays of objects. + MAC Address of the PE Router. value: str """ - if value is None: - raise TypeError("Cannot set required property name as None") - self._set_property("name", value) + self._set_property("router_mac", value) + + +class BgpExtendedCommunityNonTransitive2OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "link_bandwidth_subtype", + ], + }, + "link_bandwidth_subtype": { + "type": "BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "link_bandwidth_subtype", + } # type: Dict[str, Union(type)] + + LINK_BANDWIDTH_SUBTYPE = "link_bandwidth_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityNonTransitive2OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) @property - def ext_communities(self): - # type: () -> BgpExtCommunityIter - """ext_communities getter + def link_bandwidth_subtype(self): + # type: () -> BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + """Factory property that returns an instance of the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth class - Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. - Returns: BgpExtCommunityIter + Returns: BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth """ return self._get_property( - "ext_communities", BgpExtCommunityIter, self._parent, self._choice + "link_bandwidth_subtype", + BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, + self, + "link_bandwidth_subtype", ) + @property + def choice(self): + # type: () -> Union[Literal["link_bandwidth_subtype"]] + """choice getter -class BgpAddPath(OpenApiObject): + TBD + + Returns: Union[Literal["link_bandwidth_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["link_bandwidth_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth(OpenApiObject): __slots__ = "_parent" _TYPES = { - "path_id": { + "global_2byte_as": { "type": int, "format": "uint32", + "maximum": 65535, + }, + "bandwidth": { + "type": float, + "format": "float", }, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) _DEFAULTS = { - "path_id": 1, + "global_2byte_as": 100, + "bandwidth": 0.0, } # type: Dict[str, Union(type)] _STATUS = {} # type: Dict[str, Union(type)] - def __init__(self, parent=None, path_id=1): - super(BgpAddPath, self).__init__() + def __init__(self, parent=None, global_2byte_as=100, bandwidth=0): + super( + BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, self + ).__init__() self._parent = parent - self._set_property("path_id", path_id) + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("bandwidth", bandwidth) - def set(self, path_id=None): + def set(self, global_2byte_as=None, bandwidth=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @property - def path_id(self): + def global_2byte_as(self): # type: () -> int - """path_id getter + """global_2byte_as getter - The id of the additional path. + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. Returns: int """ - return self._get_property("path_id") + return self._get_property("global_2byte_as") - @path_id.setter - def path_id(self, value): - """path_id setter + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter - The id of the additional path. + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. value: int """ - self._set_property("path_id", value) + self._set_property("global_2byte_as", value) + + @property + def bandwidth(self): + # type: () -> float + """bandwidth getter + + Bandwidth of the link in bytes per second. 1 Kbps is 1000 bytes per second and Mbps is 1000 Kbps per second ) + + Returns: float + """ + return self._get_property("bandwidth") + + @bandwidth.setter + def bandwidth(self, value): + """bandwidth setter + + Bandwidth of the link in bytes per second. 1 Kbps is 1000 bytes per second and Mbps is 1000 Kbps per second ) + + value: float + """ + self._set_property("bandwidth", value) + + +class BgpExtendedCommunityCustomType(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "community_type": { + "type": str, + "format": "hex", + "maxLength": 2, + }, + "community_subtype": { + "type": str, + "format": "hex", + "maxLength": 2, + }, + "value": { + "type": str, + "format": "hex", + "maxLength": 12, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "community_type": "00", + "community_subtype": "00", + "value": "000000000000", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + community_type="00", + community_subtype="00", + value="000000000000", + ): + super(BgpExtendedCommunityCustomType, self).__init__() + self._parent = parent + self._set_property("community_type", community_type) + self._set_property("community_subtype", community_subtype) + self._set_property("value", value) + + def set(self, community_type=None, community_subtype=None, value=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def community_type(self): + # type: () -> str + """community_type getter + + The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff + + Returns: str + """ + return self._get_property("community_type") + + @community_type.setter + def community_type(self, value): + """community_type setter + + The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff + + value: str + """ + self._set_property("community_type", value) + + @property + def community_subtype(self): + # type: () -> str + """community_subtype getter + + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + + Returns: str + """ + return self._get_property("community_subtype") + + @community_subtype.setter + def community_subtype(self, value): + """community_subtype setter + + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + + value: str + """ + self._set_property("community_subtype", value) + + @property + def value(self): + # type: () -> str + """value getter + + 6 byte hex value to be carried in the last bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. + + Returns: str + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + 6 byte hex value to be carried in the last bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. + + value: str + """ + self._set_property("value", value) + + +class BgpExtendedCommunityIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[BgpExtendedCommunity, BgpExtendedCommunityCustomType, BgpExtendedCommunityNonTransitive2OctetAsType, BgpExtendedCommunityTransitive2OctetAsType, BgpExtendedCommunityTransitive4OctetAsType, BgpExtendedCommunityTransitiveEvpnType, BgpExtendedCommunityTransitiveIpv4AddressType, BgpExtendedCommunityTransitiveOpaqueType] + return self._getitem(key) + + def __iter__(self): + # type: () -> BgpExtendedCommunityIter + return self._iter() + + def __next__(self): + # type: () -> BgpExtendedCommunity + return self._next() + + def next(self): + # type: () -> BgpExtendedCommunity + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, BgpExtendedCommunity): + raise Exception("Item is not an instance of BgpExtendedCommunity") + + def extendedcommunity(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunity class + + The Extended Communities Attribute is optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first Bytes of the community encode type and optonal sub-type field. The last bytes (or bytes for types without sub-type) carry unique set of data in format defined by the type and optional sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity(parent=self._parent, choice=self._choice) + self._add(item) + return self + + def add(self): + # type: () -> BgpExtendedCommunity + """Add method that creates and returns an instance of the BgpExtendedCommunity class + + The Extended Communities Attribute is optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first Bytes of the community encode type and optonal sub-type field. The last bytes (or bytes for types without sub-type) carry unique set of data in format defined by the type and optional sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunity + """ + item = BgpExtendedCommunity(parent=self._parent, choice=self._choice) + self._add(item) + return item + + def transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitive2OctetAsType class + + The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_2octet_as_type + item.choice = "transitive_2octet_as_type" + self._add(item) + return self + + def transitive_ipv4_address_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveIpv4AddressType class + + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_ipv4_address_type + item.choice = "transitive_ipv4_address_type" + self._add(item) + return self + + def transitive_4octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitive4OctetAsType class + + The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_4octet_as_type + item.choice = "transitive_4octet_as_type" + self._add(item) + return self + + def transitive_opaque_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveOpaqueType class + + The Transitive Opaque Extended Community is sent as type 0x03. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_opaque_type + item.choice = "transitive_opaque_type" + self._add(item) + return self + + def transitive_evpn_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveEvpnType class + + The Transitive EVPN Extended Community is sent as type 0x06 + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_evpn_type + item.choice = "transitive_evpn_type" + self._add(item) + return self + + def non_transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityNonTransitive2OctetAsType class + + The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.non_transitive_2octet_as_type + item.choice = "non_transitive_2octet_as_type" + self._add(item) + return self + + def custom(self, community_type="00", community_subtype="00", value="000000000000"): + # type: (str,str,str) -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityCustomType class + + Add custom Extended Community with combination of types sub-types and values not explicitly specified above or not defined yet. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.custom + item.choice = "custom" + self._add(item) + return self class BgpV4RouteRangeIter(OpenApiIter): @@ -13807,6 +15567,7 @@ class BgpV6RouteRange(OpenApiObject): "add_path": {"type": "BgpAddPath"}, "name": {"type": str}, "ext_communities": {"type": "BgpExtCommunityIter"}, + "extended_communities": {"type": "BgpExtendedCommunityIter"}, } # type: Dict[str, str] _REQUIRED = ("name",) # type: tuple(str) @@ -13824,7 +15585,9 @@ class BgpV6RouteRange(OpenApiObject): IPV4 = "ipv4" # type: str IPV6 = "ipv6" # type: str - _STATUS = {} # type: Dict[str, Union(type)] + _STATUS = { + "ext_communities": "ext_communities property in schema BgpV6RouteRange is deprecated, This property is deprecated in favor of property extended_communities", + } # type: Dict[str, Union(type)] def __init__( self, @@ -14026,7 +15789,7 @@ def ext_communities(self): # type: () -> BgpExtCommunityIter """ext_communities getter - Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + Deprecated: This property is deprecated in favor of property extended_communities. Deprecated: This property is deprecated in favor of property extended_communities. Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. Returns: BgpExtCommunityIter """ @@ -14034,6 +15797,19 @@ def ext_communities(self): "ext_communities", BgpExtCommunityIter, self._parent, self._choice ) + @property + def extended_communities(self): + # type: () -> BgpExtendedCommunityIter + """extended_communities getter + + Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode type and sub-type fields and the last six bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + return self._get_property( + "extended_communities", BgpExtendedCommunityIter, self._parent, self._choice + ) + class BgpV6RouteRangeIter(OpenApiIter): __slots__ = ("_parent", "_choice") @@ -109276,8 +111052,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.12.2" - self._version_meta.sdk_version = "0.12.2" + self._version_meta.api_spec_version = "0.12.3" + self._version_meta.sdk_version = "0.12.3" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False From ee2091660dbbe5fb6013860b510bcb039208d648 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Thu, 14 Sep 2023 21:26:30 +0530 Subject: [PATCH 03/10] v0.12.4 --- dev-requirements.txt | 2 +- version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index ca2246c8..537ce774 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,3 +1,3 @@ --prefer-binary requests -openapiart==0.3.1 +openapiart==0.3.2 diff --git a/version.py b/version.py index bda46f25..50d0cb55 100644 --- a/version.py +++ b/version.py @@ -3,7 +3,7 @@ class Version: models_version = "0.12.3" - version = "0.12.3" + version = "0.12.4" package_name = "snappi" protobuf_name = "otg" go_package_name = "gosnappi" From f5f3dff9eec7d54fb597a7e9d307b17e66077956 Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Thu, 14 Sep 2023 15:59:50 +0000 Subject: [PATCH 04/10] Update auto generated go snappi --- gosnappi/gosnappi.go | 2 +- requirements.txt | 8 ++++---- snappi/snappi.py | 28 ++++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 8eff9cc7..93a464e5 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.3").SetSdkVersion("0.12.3") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.3").SetSdkVersion("0.12.4") } return api.versionMeta.localVersion diff --git a/requirements.txt b/requirements.txt index 6af84746..6d09d46b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -PyYAML -grpcio-tools~=1.54.2 ; python_version > '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' +grpcio-tools~=1.54.2 ; python_version > '3.6' grpcio~=1.54.2 ; python_version > '3.6' grpcio~=1.35.0 ; python_version <= '3.6' requests -protobuf~=4.23.3 ; python_version > '3.6' +PyYAML protobuf~=3.15.0 ; python_version <= '3.6' -semantic_version +protobuf~=4.23.3 ; python_version > '3.6' urllib3 +semantic_version diff --git a/snappi/snappi.py b/snappi/snappi.py index 940741f2..78dfca25 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -111053,7 +111053,7 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() self._version_meta.api_spec_version = "0.12.3" - self._version_meta.sdk_version = "0.12.3" + self._version_meta.sdk_version = "0.12.4" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False @@ -111509,6 +111509,8 @@ def __init__(self, **kwargs): super(GrpcApi, self).__init__(**kwargs) self._stub = None self._channel = None + self._cert = None + self._cert_domain = None self._request_timeout = 10 self._keep_alive_timeout = 10 * 1000 self._location = ( @@ -111535,15 +111537,33 @@ def __init__(self, **kwargs): ) ) + def _use_secure_connection(self, cert_path, cert_domain=None): + """Accepts certificate and host_name for SSL Connection.""" + if cert_path is None: + raise Exception("path to certificate cannot be None") + self._cert = cert_path + self._cert_domain = cert_domain + def _get_stub(self): if self._stub is None: CHANNEL_OPTIONS = [ ("grpc.enable_retries", 0), ("grpc.keepalive_timeout_ms", self._keep_alive_timeout), ] - self._channel = grpc.insecure_channel( - self._location, options=CHANNEL_OPTIONS - ) + if self._cert is None: + self._channel = grpc.insecure_channel( + self._location, options=CHANNEL_OPTIONS + ) + else: + crt = open(self._cert, "rb").read() + creds = grpc.ssl_channel_credentials(crt) + if self._cert_domain is not None: + CHANNEL_OPTIONS.append( + ("grpc.ssl_target_name_override", self._cert_domain) + ) + self._channel = grpc.secure_channel( + self._location, credentials=creds, options=CHANNEL_OPTIONS + ) self._stub = pb2_grpc.OpenapiStub(self._channel) return self._stub From e9b0ad3d5dee18f32bc22da432fe363fe59852bd Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 19 Sep 2023 00:56:45 +0530 Subject: [PATCH 05/10] v0.12.5 --- dev-requirements.txt | 2 +- version.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index 537ce774..6ac28989 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,3 +1,3 @@ --prefer-binary requests -openapiart==0.3.2 +openapiart==0.3.3 diff --git a/version.py b/version.py index 50d0cb55..96cbc836 100644 --- a/version.py +++ b/version.py @@ -2,8 +2,8 @@ class Version: - models_version = "0.12.3" - version = "0.12.4" + models_version = "0.12.4" + version = "0.12.5" package_name = "snappi" protobuf_name = "otg" go_package_name = "gosnappi" From 0fa7aa117b40939424389ed89ba390a3b68b17db Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Mon, 18 Sep 2023 19:29:41 +0000 Subject: [PATCH 06/10] Update auto generated go snappi --- gosnappi/go.mod | 2 +- gosnappi/go.sum | 4 +- gosnappi/gosnappi.go | 4 +- gosnappi/otg/otg.pb.go | 10 +- gosnappi/otg/otg.proto | 4 +- requirements.txt | 6 +- snappi/docs/openapi.yaml | 2 +- snappi/otg_pb2.py | 2 +- snappi/snappi.py | 204 ++++++++++++++++++++++++++++++++++++--- 9 files changed, 210 insertions(+), 28 deletions(-) diff --git a/gosnappi/go.mod b/gosnappi/go.mod index 772bb748..788ebd8a 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -7,6 +7,6 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/gorilla/mux v1.8.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.0 + google.golang.org/grpc v1.58.1 google.golang.org/protobuf v1.31.0 ) diff --git a/gosnappi/go.sum b/gosnappi/go.sum index 27a150c1..182b2635 100644 --- a/gosnappi/go.sum +++ b/gosnappi/go.sum @@ -1665,8 +1665,8 @@ google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwS google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= -google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= +google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 93a464e5..1fabf9b9 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.3 +/* Open Traffic Generator API 0.12.4 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.3").SetSdkVersion("0.12.4") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.4").SetSdkVersion("0.12.5") } return api.versionMeta.localVersion diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index e0febd96..9162ff3a 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.12.3 +// Open Traffic Generator API 0.12.4 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -189,7 +189,7 @@ type DeviceVlan_Tpid_Enum int32 const ( DeviceVlan_Tpid_unspecified DeviceVlan_Tpid_Enum = 0 DeviceVlan_Tpid_x8100 DeviceVlan_Tpid_Enum = 1 - DeviceVlan_Tpid_x88a8 DeviceVlan_Tpid_Enum = 2 + DeviceVlan_Tpid_x88A8 DeviceVlan_Tpid_Enum = 2 DeviceVlan_Tpid_x9100 DeviceVlan_Tpid_Enum = 3 DeviceVlan_Tpid_x9200 DeviceVlan_Tpid_Enum = 4 DeviceVlan_Tpid_x9300 DeviceVlan_Tpid_Enum = 5 @@ -200,7 +200,7 @@ var ( DeviceVlan_Tpid_Enum_name = map[int32]string{ 0: "unspecified", 1: "x8100", - 2: "x88a8", + 2: "x88A8", 3: "x9100", 4: "x9200", 5: "x9300", @@ -208,7 +208,7 @@ var ( DeviceVlan_Tpid_Enum_value = map[string]int32{ "unspecified": 0, "x8100": 1, - "x88a8": 2, + "x88A8": 2, "x9100": 3, "x9200": 4, "x9300": 5, @@ -92675,7 +92675,7 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x78, 0x38, 0x38, 0x61, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, + 0x0a, 0x05, 0x78, 0x38, 0x38, 0x41, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index f0b67815..c6a4fcf6 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.3 +/* Open Traffic Generator API 0.12.4 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -326,7 +326,7 @@ message DeviceVlan { enum Enum { unspecified = 0; x8100 = 1; - x88a8 = 2; + x88A8 = 2; x9100 = 3; x9200 = 4; x9300 = 5; diff --git a/requirements.txt b/requirements.txt index 6d09d46b..40418436 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ --prefer-binary -grpcio-tools~=1.35.0 ; python_version <= '3.6' +grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.54.2 ; python_version > '3.6' +grpcio-tools~=1.35.0 ; python_version <= '3.6' grpcio~=1.54.2 ; python_version > '3.6' -grpcio~=1.35.0 ; python_version <= '3.6' -requests PyYAML +requests protobuf~=3.15.0 ; python_version <= '3.6' protobuf~=4.23.3 ; python_version > '3.6' urllib3 diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index d101c4c6..87ee3bab 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.12.3 + version: 0.12.4 contact: url: https://github.com/open-traffic-generator/models license: diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index a2cffcbf..d354112b 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\xbb\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xd4\x08\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12W\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsTypeH\x01\x88\x01\x01\x12]\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeH\x02\x88\x01\x01\x12W\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsTypeH\x03\x88\x01\x01\x12R\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueTypeH\x04\x88\x01\x01\x12N\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnTypeH\x05\x88\x01\x01\x12^\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeH\x06\x88\x01\x01\x12\x38\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomTypeH\x07\x88\x01\x01\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x1c\n\x1a_transitive_2octet_as_typeB\x1f\n\x1d_transitive_ipv4_address_typeB\x1c\n\x1a_transitive_4octet_as_typeB\x19\n\x17_transitive_opaque_typeB\x17\n\x15_transitive_evpn_typeB \n\x1e_non_transitive_2octet_as_typeB\t\n\x07_custom\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xdc\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12`\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTargetH\x01\x88\x01\x01\x12`\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xb2\x03\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12N\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColorH\x01\x88\x01\x01\x12^\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulationH\x02\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choiceB\x10\n\x0e_color_subtypeB\x18\n\x16_encapsulation_subtype\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\xaa\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12U\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMacH\x01\x88\x01\x01\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choiceB\x15\n\x13_router_mac_subtype\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xcf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x64\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidthH\x01\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choiceB\x19\n\x17_link_bandwidth_subtype\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\xbb\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88A8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\xbb\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xd4\x08\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12W\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsTypeH\x01\x88\x01\x01\x12]\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeH\x02\x88\x01\x01\x12W\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsTypeH\x03\x88\x01\x01\x12R\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueTypeH\x04\x88\x01\x01\x12N\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnTypeH\x05\x88\x01\x01\x12^\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeH\x06\x88\x01\x01\x12\x38\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomTypeH\x07\x88\x01\x01\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x1c\n\x1a_transitive_2octet_as_typeB\x1f\n\x1d_transitive_ipv4_address_typeB\x1c\n\x1a_transitive_4octet_as_typeB\x19\n\x17_transitive_opaque_typeB\x17\n\x15_transitive_evpn_typeB \n\x1e_non_transitive_2octet_as_typeB\t\n\x07_custom\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xdc\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12`\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTargetH\x01\x88\x01\x01\x12`\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xb2\x03\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12N\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColorH\x01\x88\x01\x01\x12^\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulationH\x02\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choiceB\x10\n\x0e_color_subtypeB\x18\n\x16_encapsulation_subtype\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\xaa\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12U\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMacH\x01\x88\x01\x01\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choiceB\x15\n\x13_router_mac_subtype\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xcf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x64\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidthH\x01\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choiceB\x19\n\x17_link_bandwidth_subtype\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\xbb\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'otg_pb2', globals()) diff --git a/snappi/snappi.py b/snappi/snappi.py index 78dfca25..39384624 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.12.3 +# Open Traffic Generator API 0.12.4 # License: MIT import importlib @@ -864,15 +864,25 @@ def _validate_types(self, property_name, property_value): ): return if "enum" in details and property_value not in details["enum"]: - msg = "property {} shall be one of these" " {} enum, but got {} at {}" - raise TypeError( - msg.format( - property_name, - details["enum"], - property_value, - self.__class__, + raise_error = False + if isinstance(property_value, list): + for value in property_value: + if value not in details["enum"]: + raise_error = True + break + elif property_value not in details["enum"]: + raise_error = True + + if raise_error is True: + msg = "property {} shall be one of these" " {} enum, but got {} at {}" + raise TypeError( + msg.format( + property_name, + details["enum"], + property_value, + self.__class__, + ) ) - ) if details["type"] in common_data_types and "format" not in details: msg = "property {} shall be of type {} at {}".format( property_name, details["type"], self.__class__ @@ -93143,6 +93153,10 @@ class FlowsUpdate(OpenApiObject): _TYPES = { "property_names": { "type": list, + "enum": [ + "rate", + "size", + ], "itemtype": str, }, "flows": {"type": "FlowIter"}, @@ -96434,6 +96448,20 @@ class PortMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "bytes_rx", + "bytes_rx_rate", + "bytes_tx", + "bytes_tx_rate", + "capture", + "frames_rx", + "frames_rx_rate", + "frames_tx", + "frames_tx_rate", + "link", + "location", + "transmit", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -96521,6 +96549,15 @@ class FlowMetricsRequest(OpenApiObject): }, "metric_names": { "type": list, + "enum": [ + "bytes_rx", + "bytes_tx", + "frames_rx", + "frames_rx_rate", + "frames_tx", + "frames_tx_rate", + "transmit", + ], "itemtype": str, }, "tagged_metrics": {"type": "FlowTaggedMetricsFilter"}, @@ -96613,6 +96650,14 @@ class FlowTaggedMetricsFilter(OpenApiObject): "include_empty_metrics": {"type": bool}, "metric_names": { "type": list, + "enum": [ + "frames_tx", + "frames_rx", + "bytes_tx", + "bytes_rx", + "frames_tx_rate", + "frames_rx_rate", + ], "itemtype": str, }, "filters": {"type": "FlowMetricTagFilterIter"}, @@ -96861,6 +96906,24 @@ class Bgpv4MetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "end_of_rib_received", + "fsm_state", + "keepalives_received", + "keepalives_sent", + "notifications_received", + "notifications_sent", + "opens_received", + "opens_sent", + "route_withdraws_received", + "route_withdraws_sent", + "routes_advertised", + "routes_received", + "session_flap_count", + "session_state", + "updates_received", + "updates_sent", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -96952,6 +97015,24 @@ class Bgpv6MetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "end_of_rib_received", + "fsm_state", + "keepalives_received", + "keepalives_sent", + "notifications_received", + "notifications_sent", + "opens_received", + "opens_sent", + "route_withdraws_received", + "route_withdraws_sent", + "routes_advertised", + "routes_received", + "session_flap_count", + "session_state", + "updates_received", + "updates_sent", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -97043,6 +97124,34 @@ class IsisMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "l1_broadcast_hellos_received", + "l1_broadcast_hellos_sent", + "l1_csnp_received", + "l1_csnp_sent", + "l1_database_size", + "l1_lsp_received", + "l1_lsp_sent", + "l1_point_to_point_hellos_received", + "l1_point_to_point_hellos_sent", + "l1_psnp_received", + "l1_psnp_sent", + "l1_session_flap", + "l1_sessions_up", + "l2_broadcast_hellos_received", + "l2_broadcast_hellos_sent", + "l2_csnp_received", + "l2_csnp_sent", + "l2_database_size", + "l2_lsp_received", + "l2_lsp_sent", + "l2_point_to_point_hellos_received", + "l2_point_to_point_hellos_sent", + "l2_psnp_received", + "l2_psnp_sent", + "l2_session_flap", + "l2_sessions_up", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -97144,6 +97253,18 @@ class LagMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "bytes_rx", + "bytes_rx_rate", + "bytes_tx", + "bytes_tx_rate", + "frames_rx", + "frames_rx_rate", + "frames_tx", + "frames_tx_rate", + "member_ports_up", + "oper_status", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -97233,6 +97354,23 @@ class LacpMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "activity", + "aggregatable", + "collecting", + "distributing", + "lacp_packets_rx", + "lacp_packets_tx", + "lacp_rx_errors", + "oper_key", + "partner_id", + "partner_key", + "partner_port_num", + "port_num", + "synchronization", + "system_id", + "timeout", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -97347,6 +97485,14 @@ class LldpMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "frames_discard", + "frames_error_rx", + "frames_rx", + "frames_tx", + "tlvs_discard", + "tlvs_unknown", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -97428,6 +97574,38 @@ class RsvpMetricsRequest(OpenApiObject): }, "column_names": { "type": list, + "enum": [ + "acks_rx", + "acks_tx", + "bundle_rx", + "bundle_tx", + "egress_p2p_lsps_up", + "hellos_rx", + "hellos_tx", + "ingress_p2p_lsps_configured", + "ingress_p2p_lsps_up", + "lsp_flap_count", + "nacks_rx", + "nacks_tx", + "path_errors_rx", + "path_errors_tx", + "path_reevaluation_request_tx", + "path_reoptimizations", + "path_tears_rx", + "path_tears_tx", + "paths_rx", + "paths_tx", + "resv_conf_rx", + "resv_conf_tx", + "resv_errors_rx", + "resv_errors_tx", + "resv_tears_rx", + "resv_tears_tx", + "resvs_rx", + "resvs_tx", + "srefresh_rx", + "srefresh_tx", + ], "itemtype": str, }, } # type: Dict[str, str] @@ -104410,6 +104588,10 @@ class BgpPrefixStateRequest(OpenApiObject): }, "prefix_filters": { "type": list, + "enum": [ + "ipv4_unicast", + "ipv6_unicast", + ], "itemtype": str, }, "ipv4_unicast_filters": {"type": "BgpPrefixIpv4UnicastFilterIter"}, @@ -111052,8 +111234,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.12.3" - self._version_meta.sdk_version = "0.12.4" + self._version_meta.api_spec_version = "0.12.4" + self._version_meta.sdk_version = "0.12.5" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False From dac5b6bcfa709e548f7ae1ed6dea7ffce476c99c Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Fri, 22 Sep 2023 15:06:15 +0530 Subject: [PATCH 07/10] v0.12.6 --- version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.py b/version.py index 96cbc836..06d653b4 100644 --- a/version.py +++ b/version.py @@ -2,8 +2,8 @@ class Version: - models_version = "0.12.4" - version = "0.12.5" + models_version = "0.12.5" + version = "0.12.6" package_name = "snappi" protobuf_name = "otg" go_package_name = "gosnappi" From d96df24f370569114161826f34c78921f3904113 Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Fri, 22 Sep 2023 09:39:15 +0000 Subject: [PATCH 08/10] Update auto generated go snappi --- gosnappi/go.mod | 2 +- gosnappi/go.sum | 4 ++-- gosnappi/gosnappi.go | 12 ++++++------ gosnappi/otg/otg.pb.go | 8 ++++---- gosnappi/otg/otg.proto | 8 ++++---- requirements.txt | 12 ++++++------ snappi/docs/openapi.yaml | 8 ++++---- snappi/snappi.py | 16 ++++++++-------- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/gosnappi/go.mod b/gosnappi/go.mod index 788ebd8a..4305503b 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -7,6 +7,6 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/gorilla/mux v1.8.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.1 + google.golang.org/grpc v1.58.2 google.golang.org/protobuf v1.31.0 ) diff --git a/gosnappi/go.sum b/gosnappi/go.sum index 182b2635..57163a67 100644 --- a/gosnappi/go.sum +++ b/gosnappi/go.sum @@ -1665,8 +1665,8 @@ google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwS google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= -google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= +google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 1fabf9b9..a3d58acc 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.4 +/* Open Traffic Generator API 0.12.5 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.4").SetSdkVersion("0.12.5") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.5").SetSdkVersion("0.12.6") } return api.versionMeta.localVersion @@ -97021,12 +97021,12 @@ func (obj *patternFlowVlanTpid) SetChoice(value PatternFlowVlanTpidChoiceEnum) P obj.obj.Value = nil if value == PatternFlowVlanTpidChoice.VALUE { - defaultValue := uint32(33024) + defaultValue := uint32(65535) obj.obj.Value = &defaultValue } if value == PatternFlowVlanTpidChoice.VALUES { - defaultValue := []uint32{33024} + defaultValue := []uint32{65535} obj.obj.Values = defaultValue } @@ -97071,7 +97071,7 @@ func (obj *patternFlowVlanTpid) SetValue(value uint32) PatternFlowVlanTpid { // Values returns a []uint32 func (obj *patternFlowVlanTpid) Values() []uint32 { if obj.obj.Values == nil { - obj.SetValues([]uint32{33024}) + obj.SetValues([]uint32{65535}) } return obj.obj.Values } @@ -187748,7 +187748,7 @@ func (obj *patternFlowVlanTpidCounter) validateObj(vObj *validation, set_default func (obj *patternFlowVlanTpidCounter) setDefault() { if obj.obj.Start == nil { - obj.SetStart(33024) + obj.SetStart(65535) } if obj.obj.Step == nil { obj.SetStep(1) diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 9162ff3a..54c62f66 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.12.4 +// Open Traffic Generator API 0.12.5 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -47683,7 +47683,7 @@ type PatternFlowVlanTpidCounter struct { unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33024 + // default = 65535 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47830,10 +47830,10 @@ type PatternFlowVlanTpid struct { // default = Choice.Enum.value Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33024 + // default = 65535 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33024] + // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index c6a4fcf6..4fe971a5 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.4 +/* Open Traffic Generator API 0.12.5 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -10229,7 +10229,7 @@ message PatternFlowVlanId { message PatternFlowVlanTpidCounter { // Description missing in models - // default = 33024 + // default = 65535 optional uint32 start = 1; // Description missing in models @@ -10278,11 +10278,11 @@ message PatternFlowVlanTpid { optional Choice.Enum choice = 1; // Description missing in models - // default = 33024 + // default = 65535 optional uint32 value = 2; // Description missing in models - // default = [33024] + // default = [65535] repeated uint32 values = 3; // Description missing in models diff --git a/requirements.txt b/requirements.txt index 40418436..2621e4fd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -grpcio~=1.35.0 ; python_version <= '3.6' -grpcio-tools~=1.54.2 ; python_version > '3.6' -grpcio-tools~=1.35.0 ; python_version <= '3.6' -grpcio~=1.54.2 ; python_version > '3.6' +protobuf~=4.23.3 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' PyYAML requests -protobuf~=3.15.0 ; python_version <= '3.6' -protobuf~=4.23.3 ; python_version > '3.6' +grpcio~=1.54.2 ; python_version > '3.6' +grpcio-tools~=1.54.2 ; python_version > '3.6' +grpcio~=1.35.0 ; python_version <= '3.6' +grpcio-tools~=1.35.0 ; python_version <= '3.6' urllib3 semantic_version diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index 87ee3bab..aa537a5b 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.12.4 + version: 0.12.5 contact: url: https://github.com/open-traffic-generator/models license: @@ -14135,7 +14135,7 @@ components: start: type: integer x-field-uid: 1 - default: 33024 + default: 65535 format: uint32 maximum: 65535 step: @@ -14212,7 +14212,7 @@ components: value: type: integer x-field-uid: 2 - default: 33024 + default: 65535 format: uint32 maximum: 65535 values: @@ -14223,7 +14223,7 @@ components: maximum: 65535 x-field-uid: 3 default: - - 33024 + - 65535 increment: $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.Counter' x-field-uid: 5 diff --git a/snappi/snappi.py b/snappi/snappi.py index 39384624..0d9bc38b 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.12.4 +# Open Traffic Generator API 0.12.5 # License: MIT import importlib @@ -30038,8 +30038,8 @@ class PatternFlowVlanTpid(OpenApiObject): _DEFAULTS = { "choice": "value", - "value": 33024, - "values": [33024], + "value": 65535, + "values": [65535], } # type: Dict[str, Union(type)] X8100 = 33024 # @@ -30055,7 +30055,7 @@ class PatternFlowVlanTpid(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__(self, parent=None, choice=None, value=33024, values=[33024]): + def __init__(self, parent=None, choice=None, value=65535, values=[65535]): super(PatternFlowVlanTpid, self).__init__() self._parent = parent self._set_property("value", value) @@ -30201,7 +30201,7 @@ class PatternFlowVlanTpidCounter(OpenApiObject): _REQUIRED = () # type: tuple(str) _DEFAULTS = { - "start": 33024, + "start": 65535, "step": 1, "count": 1, } # type: Dict[str, Union(type)] @@ -30214,7 +30214,7 @@ class PatternFlowVlanTpidCounter(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__(self, parent=None, start=33024, step=1, count=1): + def __init__(self, parent=None, start=65535, step=1, count=1): super(PatternFlowVlanTpidCounter, self).__init__() self._parent = parent self._set_property("start", start) @@ -111234,8 +111234,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.12.4" - self._version_meta.sdk_version = "0.12.5" + self._version_meta.api_spec_version = "0.12.5" + self._version_meta.sdk_version = "0.12.6" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False From 324a5e4480a8f5c6ae0b2f128bb80b6f52bf540d Mon Sep 17 00:00:00 2001 From: Vibaswan Date: Fri, 13 Oct 2023 15:11:05 +0530 Subject: [PATCH 09/10] Changed required to optional (#212) * Trigger CI * Update auto generated go snappi * Trigger CI * Update auto generated go snappi * fix test * Update auto generated go snappi * Trigger CI * Update auto generated go snappi * correcting tests * Update auto generated go snappi * pointing to models branch * pointing to models branch * bug fix * Update auto generated go snappi * Trigger CI * Update auto generated go snappi * v0.13.0 * Update auto generated go snappi * Update auto generated go snappi --------- Co-authored-by: vhowdhur Co-authored-by: Github Actions Bot Co-authored-by: Ashutosh Kumar --- dev-requirements.txt | 2 +- gosnappi/common.go | 5 +- gosnappi/generated_required_test.go | 6 +- gosnappi/go.mod | 2 +- gosnappi/go.sum | 4 +- gosnappi/gosnappi.go | 1850 +- .../controllers/capabilities_controller.go | 2 +- .../controllers/configuration_controller.go | 6 +- .../httpapi/controllers/control_controller.go | 4 +- .../httpapi/controllers/monitor_controller.go | 6 +- gosnappi/mock_grpcserver.go | 21 +- gosnappi/otg/otg.pb.go | 28086 ++++++++-------- gosnappi/otg/otg.proto | 1906 +- gosnappi/snappigo_test.go | 6 +- requirements.txt | 6 +- snappi/docs/openapi.yaml | 2 +- snappi/otg_pb2.py | 5540 +-- snappi/snappi.py | 6 +- version.py | 4 +- 19 files changed, 18549 insertions(+), 18915 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index 6ac28989..77546793 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,3 +1,3 @@ --prefer-binary requests -openapiart==0.3.3 +openapiart==0.3.4 diff --git a/gosnappi/common.go b/gosnappi/common.go index 8eb9236c..d8bc3c94 100644 --- a/gosnappi/common.go +++ b/gosnappi/common.go @@ -209,7 +209,7 @@ func (api *api) FromError(err error) (Error, bool) { func (api *api) setResponseErr(obj Error, code int32, message string) { errors := []string{} errors = append(errors, message) - obj.Msg().Code = code + obj.Msg().Code = &code obj.Msg().Errors = errors } @@ -218,7 +218,8 @@ func (api *api) fromGrpcError(err error) (Error, bool) { if ok { rErr := NewError() if err := rErr.FromJson(st.Message()); err == nil { - rErr.Msg().Code = int32(st.Code()) + var code = int32(st.Code()) + rErr.Msg().Code = &code return rErr, true } diff --git a/gosnappi/generated_required_test.go b/gosnappi/generated_required_test.go index 81694a8d..bcf4fabe 100644 --- a/gosnappi/generated_required_test.go +++ b/gosnappi/generated_required_test.go @@ -124,9 +124,9 @@ func TestTransmitStateRequired(t *testing.T) { err1 := object.FromYaml(string(data)) protoMarshal, _ := proto.Marshal(object.Msg()) err2 := object.FromPbText(string(protoMarshal)) - assert.Nil(t, err) - assert.Nil(t, err1) - assert.Nil(t, err2) + assert.NotNil(t, err) + assert.NotNil(t, err1) + assert.NotNil(t, err2) } func TestLinkStateRequired(t *testing.T) { object := gosnappi.NewControlState().Port().Link() diff --git a/gosnappi/go.mod b/gosnappi/go.mod index 4305503b..52fb49f8 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -7,6 +7,6 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/gorilla/mux v1.8.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.2 + google.golang.org/grpc v1.58.3 google.golang.org/protobuf v1.31.0 ) diff --git a/gosnappi/go.sum b/gosnappi/go.sum index 57163a67..868ed5d4 100644 --- a/gosnappi/go.sum +++ b/gosnappi/go.sum @@ -1665,8 +1665,8 @@ google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwS google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= -google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index a3d58acc..10d19623 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.5 +/* Open Traffic Generator API 0.13.0 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.5").SetSdkVersion("0.12.6") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.13.0").SetSdkVersion("0.13.0") } return api.versionMeta.localVersion @@ -2566,7 +2566,8 @@ func (obj *controlState) SetChoice(value ControlStateChoiceEnum) ControlState { "%s is not a valid choice on ControlStateChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ControlState_Choice_Enum(intValue) + enumValue := otg.ControlState_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Traffic = nil obj.trafficHolder = nil obj.obj.Protocol = nil @@ -2679,7 +2680,7 @@ func (obj *controlState) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ControlState") } @@ -2967,7 +2968,8 @@ func (obj *controlAction) SetChoice(value ControlActionChoiceEnum) ControlAction "%s is not a valid choice on ControlActionChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ControlAction_Choice_Enum(intValue) + enumValue := otg.ControlAction_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Protocol = nil obj.protocolHolder = nil @@ -3012,7 +3014,7 @@ func (obj *controlAction) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ControlAction") } @@ -4589,7 +4591,8 @@ type CaptureRequest interface { // PortName returns a string func (obj *captureRequest) PortName() string { - return obj.obj.PortName + return *obj.obj.PortName + } // The name of a port a capture is started on. @@ -4603,7 +4606,7 @@ func (obj *captureRequest) PortName() string { // SetPortName sets the string value in the CaptureRequest object func (obj *captureRequest) SetPortName(value string) CaptureRequest { - obj.obj.PortName = value + obj.obj.PortName = &value return obj } @@ -4613,7 +4616,7 @@ func (obj *captureRequest) validateObj(vObj *validation, set_default bool) { } // PortName is required - if obj.obj.PortName == "" { + if obj.obj.PortName == nil { vObj.validationErrors = append(vObj.validationErrors, "PortName is required field on interface CaptureRequest") } } @@ -7428,14 +7431,15 @@ func (obj *port) SetLocation(value string) Port { // Name returns a string func (obj *port) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Port object func (obj *port) SetName(value string) Port { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -7445,7 +7449,7 @@ func (obj *port) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Port") } } @@ -7851,14 +7855,15 @@ func (obj *lag) SetMinLinks(value uint32) Lag { // Name returns a string func (obj *lag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Lag object func (obj *lag) SetName(value string) Lag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -7897,7 +7902,7 @@ func (obj *lag) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Lag") } } @@ -8484,14 +8489,15 @@ func (obj *layer1) SetFlowControl(value Layer1FlowControl) Layer1 { // Name returns a string func (obj *layer1) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Layer1 object func (obj *layer1) SetName(value string) Layer1 { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -8500,11 +8506,6 @@ func (obj *layer1) validateObj(vObj *validation, set_default bool) { obj.setDefault() } - // PortNames is required - if obj.obj.PortNames == nil { - vObj.validationErrors = append(vObj.validationErrors, "PortNames is required field on interface Layer1") - } - if obj.obj.Mtu != nil { if *obj.obj.Mtu < 64 || *obj.obj.Mtu > 9000 { @@ -8526,7 +8527,7 @@ func (obj *layer1) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Layer1") } } @@ -9013,14 +9014,15 @@ func (obj *capture) SetFormat(value CaptureFormatEnum) Capture { // Name returns a string func (obj *capture) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Capture object func (obj *capture) SetName(value string) Capture { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -9031,11 +9033,6 @@ func (obj *capture) validateObj(vObj *validation, set_default bool) { obj.addWarnings("Capture is under review, There may be changes in filter configuration") - // PortNames is required - if obj.obj.PortNames == nil { - vObj.validationErrors = append(vObj.validationErrors, "PortNames is required field on interface Capture") - } - if len(obj.obj.Filters) != 0 { if set_default { @@ -9061,7 +9058,7 @@ func (obj *capture) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Capture") } } @@ -9711,14 +9708,15 @@ func (obj *device) SetVxlan(value DeviceVxlan) Device { // Name returns a string func (obj *device) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Device object func (obj *device) SetName(value string) Device { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -9813,7 +9811,7 @@ func (obj *device) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Device") } @@ -10377,14 +10375,15 @@ func (obj *flow) SetMetrics(value FlowMetrics) Flow { // Name returns a string func (obj *flow) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Flow object func (obj *flow) SetName(value string) Flow { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -10452,7 +10451,7 @@ func (obj *flow) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Flow") } } @@ -11630,14 +11629,15 @@ func (obj *lldp) SetAdvertisementInterval(value uint32) Lldp { // Name returns a string func (obj *lldp) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the Lldp object func (obj *lldp) SetName(value string) Lldp { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -11692,7 +11692,7 @@ func (obj *lldp) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface Lldp") } } @@ -12068,11 +12068,6 @@ func (obj *flowsUpdate) validateObj(vObj *validation, set_default bool) { obj.setDefault() } - // PropertyNames is required - if obj.obj.PropertyNames == nil { - vObj.validationErrors = append(vObj.validationErrors, "PropertyNames is required field on interface FlowsUpdate") - } - if len(obj.obj.Flows) != 0 { if set_default { @@ -12368,7 +12363,8 @@ func (obj *statePort) SetChoice(value StatePortChoiceEnum) StatePort { "%s is not a valid choice on StatePortChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.StatePort_Choice_Enum(intValue) + enumValue := otg.StatePort_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Capture = nil obj.captureHolder = nil obj.obj.Link = nil @@ -12447,7 +12443,7 @@ func (obj *statePort) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface StatePort") } @@ -12756,7 +12752,8 @@ func (obj *stateProtocol) SetChoice(value StateProtocolChoiceEnum) StateProtocol "%s is not a valid choice on StateProtocolChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.StateProtocol_Choice_Enum(intValue) + enumValue := otg.StateProtocol_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Lacp = nil obj.lacpHolder = nil obj.obj.Route = nil @@ -12869,7 +12866,7 @@ func (obj *stateProtocol) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface StateProtocol") } @@ -13157,7 +13154,8 @@ func (obj *stateTraffic) SetChoice(value StateTrafficChoiceEnum) StateTraffic { "%s is not a valid choice on StateTrafficChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.StateTraffic_Choice_Enum(intValue) + enumValue := otg.StateTraffic_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.FlowTransmit = nil obj.flowTransmitHolder = nil @@ -13202,7 +13200,7 @@ func (obj *stateTraffic) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface StateTraffic") } @@ -13504,7 +13502,8 @@ func (obj *actionProtocol) SetChoice(value ActionProtocolChoiceEnum) ActionProto "%s is not a valid choice on ActionProtocolChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionProtocol_Choice_Enum(intValue) + enumValue := otg.ActionProtocol_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Bgp = nil obj.bgpHolder = nil obj.obj.Ipv6 = nil @@ -13617,7 +13616,7 @@ func (obj *actionProtocol) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionProtocol") } @@ -19173,7 +19172,8 @@ func (obj *_error) Error() string { // Code returns a int32 func (obj *_error) Code() int32 { - return obj.obj.Code + return *obj.obj.Code + } // Numeric status code based on the underlying transport being used. @@ -19184,7 +19184,7 @@ func (obj *_error) Code() int32 { // SetCode sets the int32 value in the Error object func (obj *_error) SetCode(value int32) Error { - obj.obj.Code = value + obj.obj.Code = &value return obj } @@ -19249,9 +19249,9 @@ func (obj *_error) validateObj(vObj *validation, set_default bool) { obj.setDefault() } - // Errors is required - if obj.obj.Errors == nil { - vObj.validationErrors = append(vObj.validationErrors, "Errors is required field on interface Error") + // Code is required + if obj.obj.Code == nil { + vObj.validationErrors = append(vObj.validationErrors, "Code is required field on interface Error") } } @@ -22410,7 +22410,8 @@ type LagPort interface { // PortName returns a string func (obj *lagPort) PortName() string { - return obj.obj.PortName + return *obj.obj.PortName + } // The name of a port object that will be part of the LAG. @@ -22424,7 +22425,7 @@ func (obj *lagPort) PortName() string { // SetPortName sets the string value in the LagPort object func (obj *lagPort) SetPortName(value string) LagPort { - obj.obj.PortName = value + obj.obj.PortName = &value return obj } @@ -22484,7 +22485,7 @@ func (obj *lagPort) validateObj(vObj *validation, set_default bool) { } // PortName is required - if obj.obj.PortName == "" { + if obj.obj.PortName == nil { vObj.validationErrors = append(vObj.validationErrors, "PortName is required field on interface LagPort") } @@ -24786,14 +24787,15 @@ func (obj *deviceEthernetDeviceIpv6Iter) appendHolderSlice(item DeviceIpv6) Devi // Mac returns a string func (obj *deviceEthernet) Mac() string { - return obj.obj.Mac + return *obj.obj.Mac + } // Media Access Control address. // SetMac sets the string value in the DeviceEthernet object func (obj *deviceEthernet) SetMac(value string) DeviceEthernet { - obj.obj.Mac = value + obj.obj.Mac = &value return obj } @@ -24910,14 +24912,15 @@ func (obj *deviceEthernetDeviceVlanIter) appendHolderSlice(item DeviceVlan) Devi // Name returns a string func (obj *deviceEthernet) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceEthernet object func (obj *deviceEthernet) SetName(value string) DeviceEthernet { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -24960,10 +24963,10 @@ func (obj *deviceEthernet) validateObj(vObj *validation, set_default bool) { } // Mac is required - if obj.obj.Mac == "" { + if obj.obj.Mac == nil { vObj.validationErrors = append(vObj.validationErrors, "Mac is required field on interface DeviceEthernet") } - if obj.obj.Mac != "" { + if obj.obj.Mac != nil { err := obj.validateMac(obj.Mac()) if err != nil { @@ -24997,7 +25000,7 @@ func (obj *deviceEthernet) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceEthernet") } } @@ -25256,7 +25259,8 @@ type DeviceIpv4Loopback interface { // EthName returns a string func (obj *deviceIpv4Loopback) EthName() string { - return obj.obj.EthName + return *obj.obj.EthName + } // The unique name of the Ethernet interface behind which this Loopback interface will be created. @@ -25270,7 +25274,7 @@ func (obj *deviceIpv4Loopback) EthName() string { // SetEthName sets the string value in the DeviceIpv4Loopback object func (obj *deviceIpv4Loopback) SetEthName(value string) DeviceIpv4Loopback { - obj.obj.EthName = value + obj.obj.EthName = &value return obj } @@ -25300,14 +25304,15 @@ func (obj *deviceIpv4Loopback) SetAddress(value string) DeviceIpv4Loopback { // Name returns a string func (obj *deviceIpv4Loopback) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceIpv4Loopback object func (obj *deviceIpv4Loopback) SetName(value string) DeviceIpv4Loopback { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -25317,7 +25322,7 @@ func (obj *deviceIpv4Loopback) validateObj(vObj *validation, set_default bool) { } // EthName is required - if obj.obj.EthName == "" { + if obj.obj.EthName == nil { vObj.validationErrors = append(vObj.validationErrors, "EthName is required field on interface DeviceIpv4Loopback") } @@ -25331,7 +25336,7 @@ func (obj *deviceIpv4Loopback) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceIpv4Loopback") } } @@ -25591,7 +25596,8 @@ type DeviceIpv6Loopback interface { // EthName returns a string func (obj *deviceIpv6Loopback) EthName() string { - return obj.obj.EthName + return *obj.obj.EthName + } // The unique name of the Ethernet interface behind which this Loopback @@ -25606,7 +25612,7 @@ func (obj *deviceIpv6Loopback) EthName() string { // SetEthName sets the string value in the DeviceIpv6Loopback object func (obj *deviceIpv6Loopback) SetEthName(value string) DeviceIpv6Loopback { - obj.obj.EthName = value + obj.obj.EthName = &value return obj } @@ -25636,14 +25642,15 @@ func (obj *deviceIpv6Loopback) SetAddress(value string) DeviceIpv6Loopback { // Name returns a string func (obj *deviceIpv6Loopback) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceIpv6Loopback object func (obj *deviceIpv6Loopback) SetName(value string) DeviceIpv6Loopback { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -25653,7 +25660,7 @@ func (obj *deviceIpv6Loopback) validateObj(vObj *validation, set_default bool) { } // EthName is required - if obj.obj.EthName == "" { + if obj.obj.EthName == nil { vObj.validationErrors = append(vObj.validationErrors, "EthName is required field on interface DeviceIpv6Loopback") } @@ -25667,7 +25674,7 @@ func (obj *deviceIpv6Loopback) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceIpv6Loopback") } } @@ -26000,14 +26007,15 @@ func (obj *deviceIsisRouter) SetInstance(value DeviceIsisMultiInstance) DeviceIs // SystemId returns a string func (obj *deviceIsisRouter) SystemId() string { - return obj.obj.SystemId + return *obj.obj.SystemId + } // The System ID for this emulated ISIS router, e.g. "640100010000". // SetSystemId sets the string value in the DeviceIsisRouter object func (obj *deviceIsisRouter) SetSystemId(value string) DeviceIsisRouter { - obj.obj.SystemId = value + obj.obj.SystemId = &value return obj } @@ -26360,14 +26368,15 @@ func (obj *deviceIsisRouterIsisV6RouteRangeIter) appendHolderSlice(item IsisV6Ro // Name returns a string func (obj *deviceIsisRouter) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceIsisRouter object func (obj *deviceIsisRouter) SetName(value string) DeviceIsisRouter { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -26382,10 +26391,10 @@ func (obj *deviceIsisRouter) validateObj(vObj *validation, set_default bool) { } // SystemId is required - if obj.obj.SystemId == "" { + if obj.obj.SystemId == nil { vObj.validationErrors = append(vObj.validationErrors, "SystemId is required field on interface DeviceIsisRouter") } - if obj.obj.SystemId != "" { + if obj.obj.SystemId != nil { err := obj.validateHex(obj.SystemId()) if err != nil { @@ -26452,7 +26461,7 @@ func (obj *deviceIsisRouter) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceIsisRouter") } } @@ -26706,14 +26715,15 @@ type DeviceBgpRouter interface { // RouterId returns a string func (obj *deviceBgpRouter) RouterId() string { - return obj.obj.RouterId + return *obj.obj.RouterId + } // The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is often represented by an IPv4 address. // SetRouterId sets the string value in the DeviceBgpRouter object func (obj *deviceBgpRouter) SetRouterId(value string) DeviceBgpRouter { - obj.obj.RouterId = value + obj.obj.RouterId = &value return obj } @@ -26897,10 +26907,10 @@ func (obj *deviceBgpRouter) validateObj(vObj *validation, set_default bool) { } // RouterId is required - if obj.obj.RouterId == "" { + if obj.obj.RouterId == nil { vObj.validationErrors = append(vObj.validationErrors, "RouterId is required field on interface DeviceBgpRouter") } - if obj.obj.RouterId != "" { + if obj.obj.RouterId != nil { err := obj.validateIpv4(obj.RouterId()) if err != nil { @@ -34652,7 +34662,8 @@ func (obj *statePortLink) SetState(value StatePortLinkStateEnum) StatePortLink { "%s is not a valid choice on StatePortLinkStateEnum", string(value))) return obj } - obj.obj.State = otg.StatePortLink_State_Enum(intValue) + enumValue := otg.StatePortLink_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -34663,7 +34674,7 @@ func (obj *statePortLink) validateObj(vObj *validation, set_default bool) { } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StatePortLink") } } @@ -34961,7 +34972,8 @@ func (obj *statePortCapture) SetState(value StatePortCaptureStateEnum) StatePort "%s is not a valid choice on StatePortCaptureStateEnum", string(value))) return obj } - obj.obj.State = otg.StatePortCapture_State_Enum(intValue) + enumValue := otg.StatePortCapture_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -34972,7 +34984,7 @@ func (obj *statePortCapture) validateObj(vObj *validation, set_default bool) { } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StatePortCapture") } } @@ -35230,7 +35242,8 @@ func (obj *stateProtocolAll) SetState(value StateProtocolAllStateEnum) StateProt "%s is not a valid choice on StateProtocolAllStateEnum", string(value))) return obj } - obj.obj.State = otg.StateProtocolAll_State_Enum(intValue) + enumValue := otg.StateProtocolAll_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -35241,7 +35254,7 @@ func (obj *stateProtocolAll) validateObj(vObj *validation, set_default bool) { } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StateProtocolAll") } } @@ -35549,7 +35562,8 @@ func (obj *stateProtocolRoute) SetState(value StateProtocolRouteStateEnum) State "%s is not a valid choice on StateProtocolRouteStateEnum", string(value))) return obj } - obj.obj.State = otg.StateProtocolRoute_State_Enum(intValue) + enumValue := otg.StateProtocolRoute_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -35560,7 +35574,7 @@ func (obj *stateProtocolRoute) validateObj(vObj *validation, set_default bool) { } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StateProtocolRoute") } } @@ -35832,7 +35846,8 @@ func (obj *stateProtocolLacp) SetChoice(value StateProtocolLacpChoiceEnum) State "%s is not a valid choice on StateProtocolLacpChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.StateProtocolLacp_Choice_Enum(intValue) + enumValue := otg.StateProtocolLacp_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Admin = nil obj.adminHolder = nil @@ -35877,7 +35892,7 @@ func (obj *stateProtocolLacp) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface StateProtocolLacp") } @@ -36185,7 +36200,8 @@ func (obj *stateTrafficFlowTransmit) SetState(value StateTrafficFlowTransmitStat "%s is not a valid choice on StateTrafficFlowTransmitStateEnum", string(value))) return obj } - obj.obj.State = otg.StateTrafficFlowTransmit_State_Enum(intValue) + enumValue := otg.StateTrafficFlowTransmit_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -36196,7 +36212,7 @@ func (obj *stateTrafficFlowTransmit) validateObj(vObj *validation, set_default b } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StateTrafficFlowTransmit") } } @@ -36468,7 +36484,8 @@ func (obj *actionProtocolIpv4) SetChoice(value ActionProtocolIpv4ChoiceEnum) Act "%s is not a valid choice on ActionProtocolIpv4ChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionProtocolIpv4_Choice_Enum(intValue) + enumValue := otg.ActionProtocolIpv4_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Ping = nil obj.pingHolder = nil @@ -36513,7 +36530,7 @@ func (obj *actionProtocolIpv4) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionProtocolIpv4") } @@ -36791,7 +36808,8 @@ func (obj *actionProtocolIpv6) SetChoice(value ActionProtocolIpv6ChoiceEnum) Act "%s is not a valid choice on ActionProtocolIpv6ChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionProtocolIpv6_Choice_Enum(intValue) + enumValue := otg.ActionProtocolIpv6_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Ping = nil obj.pingHolder = nil @@ -36836,7 +36854,7 @@ func (obj *actionProtocolIpv6) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionProtocolIpv6") } @@ -37126,7 +37144,8 @@ func (obj *actionProtocolBgp) SetChoice(value ActionProtocolBgpChoiceEnum) Actio "%s is not a valid choice on ActionProtocolBgpChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionProtocolBgp_Choice_Enum(intValue) + enumValue := otg.ActionProtocolBgp_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.InitiateGracefulRestart = nil obj.initiateGracefulRestartHolder = nil obj.obj.Notification = nil @@ -37205,7 +37224,7 @@ func (obj *actionProtocolBgp) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionProtocolBgp") } @@ -38689,7 +38708,8 @@ func (obj *actionResponse) SetChoice(value ActionResponseChoiceEnum) ActionRespo "%s is not a valid choice on ActionResponseChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionResponse_Choice_Enum(intValue) + enumValue := otg.ActionResponse_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Protocol = nil obj.protocolHolder = nil @@ -38734,7 +38754,7 @@ func (obj *actionResponse) validateObj(vObj *validation, set_default bool) { } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionResponse") } @@ -45759,14 +45779,15 @@ type Neighborsv4State interface { // EthernetName returns a string func (obj *neighborsv4State) EthernetName() string { - return obj.obj.EthernetName + return *obj.obj.EthernetName + } // The name of the Ethernet interface associated with the Neighbor state (ARP cache entry). // SetEthernetName sets the string value in the Neighborsv4State object func (obj *neighborsv4State) SetEthernetName(value string) Neighborsv4State { - obj.obj.EthernetName = value + obj.obj.EthernetName = &value return obj } @@ -45774,14 +45795,15 @@ func (obj *neighborsv4State) SetEthernetName(value string) Neighborsv4State { // Ipv4Address returns a string func (obj *neighborsv4State) Ipv4Address() string { - return obj.obj.Ipv4Address + return *obj.obj.Ipv4Address + } // The IPv4 address of the neighbor. // SetIpv4Address sets the string value in the Neighborsv4State object func (obj *neighborsv4State) SetIpv4Address(value string) Neighborsv4State { - obj.obj.Ipv4Address = value + obj.obj.Ipv4Address = &value return obj } @@ -45813,15 +45835,15 @@ func (obj *neighborsv4State) validateObj(vObj *validation, set_default bool) { } // EthernetName is required - if obj.obj.EthernetName == "" { + if obj.obj.EthernetName == nil { vObj.validationErrors = append(vObj.validationErrors, "EthernetName is required field on interface Neighborsv4State") } // Ipv4Address is required - if obj.obj.Ipv4Address == "" { + if obj.obj.Ipv4Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4Address is required field on interface Neighborsv4State") } - if obj.obj.Ipv4Address != "" { + if obj.obj.Ipv4Address != nil { err := obj.validateIpv4(obj.Ipv4Address()) if err != nil { @@ -46085,14 +46107,15 @@ type Neighborsv6State interface { // EthernetName returns a string func (obj *neighborsv6State) EthernetName() string { - return obj.obj.EthernetName + return *obj.obj.EthernetName + } // The name of the Ethernet interface associated with the Neighbor state (NDISC cache entry). // SetEthernetName sets the string value in the Neighborsv6State object func (obj *neighborsv6State) SetEthernetName(value string) Neighborsv6State { - obj.obj.EthernetName = value + obj.obj.EthernetName = &value return obj } @@ -46100,14 +46123,15 @@ func (obj *neighborsv6State) SetEthernetName(value string) Neighborsv6State { // Ipv6Address returns a string func (obj *neighborsv6State) Ipv6Address() string { - return obj.obj.Ipv6Address + return *obj.obj.Ipv6Address + } // The IPv6 address of the neighbor. // SetIpv6Address sets the string value in the Neighborsv6State object func (obj *neighborsv6State) SetIpv6Address(value string) Neighborsv6State { - obj.obj.Ipv6Address = value + obj.obj.Ipv6Address = &value return obj } @@ -46139,15 +46163,15 @@ func (obj *neighborsv6State) validateObj(vObj *validation, set_default bool) { } // EthernetName is required - if obj.obj.EthernetName == "" { + if obj.obj.EthernetName == nil { vObj.validationErrors = append(vObj.validationErrors, "EthernetName is required field on interface Neighborsv6State") } // Ipv6Address is required - if obj.obj.Ipv6Address == "" { + if obj.obj.Ipv6Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv6Address is required field on interface Neighborsv6State") } - if obj.obj.Ipv6Address != "" { + if obj.obj.Ipv6Address != nil { err := obj.validateIpv6(obj.Ipv6Address()) if err != nil { @@ -48975,14 +48999,15 @@ type DeviceEthernetBase interface { // Mac returns a string func (obj *deviceEthernetBase) Mac() string { - return obj.obj.Mac + return *obj.obj.Mac + } // Media Access Control address. // SetMac sets the string value in the DeviceEthernetBase object func (obj *deviceEthernetBase) SetMac(value string) DeviceEthernetBase { - obj.obj.Mac = value + obj.obj.Mac = &value return obj } @@ -49099,14 +49124,15 @@ func (obj *deviceEthernetBaseDeviceVlanIter) appendHolderSlice(item DeviceVlan) // Name returns a string func (obj *deviceEthernetBase) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceEthernetBase object func (obj *deviceEthernetBase) SetName(value string) DeviceEthernetBase { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -49116,10 +49142,10 @@ func (obj *deviceEthernetBase) validateObj(vObj *validation, set_default bool) { } // Mac is required - if obj.obj.Mac == "" { + if obj.obj.Mac == nil { vObj.validationErrors = append(vObj.validationErrors, "Mac is required field on interface DeviceEthernetBase") } - if obj.obj.Mac != "" { + if obj.obj.Mac != nil { err := obj.validateMac(obj.Mac()) if err != nil { @@ -49153,7 +49179,7 @@ func (obj *deviceEthernetBase) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceEthernetBase") } } @@ -54020,14 +54046,15 @@ type DeviceIpv4 interface { // Gateway returns a string func (obj *deviceIpv4) Gateway() string { - return obj.obj.Gateway + return *obj.obj.Gateway + } // The IPv4 address of the gateway // SetGateway sets the string value in the DeviceIpv4 object func (obj *deviceIpv4) SetGateway(value string) DeviceIpv4 { - obj.obj.Gateway = value + obj.obj.Gateway = &value return obj } @@ -54063,14 +54090,15 @@ func (obj *deviceIpv4) SetGatewayMac(value DeviceIpv4GatewayMAC) DeviceIpv4 { // Address returns a string func (obj *deviceIpv4) Address() string { - return obj.obj.Address + return *obj.obj.Address + } // The IPv4 address // SetAddress sets the string value in the DeviceIpv4 object func (obj *deviceIpv4) SetAddress(value string) DeviceIpv4 { - obj.obj.Address = value + obj.obj.Address = &value return obj } @@ -54100,14 +54128,15 @@ func (obj *deviceIpv4) SetPrefix(value uint32) DeviceIpv4 { // Name returns a string func (obj *deviceIpv4) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceIpv4 object func (obj *deviceIpv4) SetName(value string) DeviceIpv4 { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -54117,10 +54146,10 @@ func (obj *deviceIpv4) validateObj(vObj *validation, set_default bool) { } // Gateway is required - if obj.obj.Gateway == "" { + if obj.obj.Gateway == nil { vObj.validationErrors = append(vObj.validationErrors, "Gateway is required field on interface DeviceIpv4") } - if obj.obj.Gateway != "" { + if obj.obj.Gateway != nil { err := obj.validateIpv4(obj.Gateway()) if err != nil { @@ -54135,10 +54164,10 @@ func (obj *deviceIpv4) validateObj(vObj *validation, set_default bool) { } // Address is required - if obj.obj.Address == "" { + if obj.obj.Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Address is required field on interface DeviceIpv4") } - if obj.obj.Address != "" { + if obj.obj.Address != nil { err := obj.validateIpv4(obj.Address()) if err != nil { @@ -54158,7 +54187,7 @@ func (obj *deviceIpv4) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceIpv4") } } @@ -54435,14 +54464,15 @@ type DeviceIpv6 interface { // Gateway returns a string func (obj *deviceIpv6) Gateway() string { - return obj.obj.Gateway + return *obj.obj.Gateway + } // The IPv6 gateway address. // SetGateway sets the string value in the DeviceIpv6 object func (obj *deviceIpv6) SetGateway(value string) DeviceIpv6 { - obj.obj.Gateway = value + obj.obj.Gateway = &value return obj } @@ -54478,14 +54508,15 @@ func (obj *deviceIpv6) SetGatewayMac(value DeviceIpv6GatewayMAC) DeviceIpv6 { // Address returns a string func (obj *deviceIpv6) Address() string { - return obj.obj.Address + return *obj.obj.Address + } // The IPv6 address. // SetAddress sets the string value in the DeviceIpv6 object func (obj *deviceIpv6) SetAddress(value string) DeviceIpv6 { - obj.obj.Address = value + obj.obj.Address = &value return obj } @@ -54515,14 +54546,15 @@ func (obj *deviceIpv6) SetPrefix(value uint32) DeviceIpv6 { // Name returns a string func (obj *deviceIpv6) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceIpv6 object func (obj *deviceIpv6) SetName(value string) DeviceIpv6 { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -54532,10 +54564,10 @@ func (obj *deviceIpv6) validateObj(vObj *validation, set_default bool) { } // Gateway is required - if obj.obj.Gateway == "" { + if obj.obj.Gateway == nil { vObj.validationErrors = append(vObj.validationErrors, "Gateway is required field on interface DeviceIpv6") } - if obj.obj.Gateway != "" { + if obj.obj.Gateway != nil { err := obj.validateIpv6(obj.Gateway()) if err != nil { @@ -54550,10 +54582,10 @@ func (obj *deviceIpv6) validateObj(vObj *validation, set_default bool) { } // Address is required - if obj.obj.Address == "" { + if obj.obj.Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Address is required field on interface DeviceIpv6") } - if obj.obj.Address != "" { + if obj.obj.Address != nil { err := obj.validateIpv6(obj.Address()) if err != nil { @@ -54573,7 +54605,7 @@ func (obj *deviceIpv6) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceIpv6") } } @@ -54917,14 +54949,15 @@ func (obj *deviceVlan) SetId(value uint32) DeviceVlan { // Name returns a string func (obj *deviceVlan) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the DeviceVlan object func (obj *deviceVlan) SetName(value string) DeviceVlan { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -54954,7 +54987,7 @@ func (obj *deviceVlan) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface DeviceVlan") } } @@ -55613,7 +55646,8 @@ type IsisInterface interface { // EthName returns a string func (obj *isisInterface) EthName() string { - return obj.obj.EthName + return *obj.obj.EthName + } // The unique name of the Ethernet interface on which ISIS is running. Two ISIS interfaces cannot share the same Ethernet. @@ -55627,7 +55661,7 @@ func (obj *isisInterface) EthName() string { // SetEthName sets the string value in the IsisInterface object func (obj *isisInterface) SetEthName(value string) IsisInterface { - obj.obj.EthName = value + obj.obj.EthName = &value return obj } @@ -56063,14 +56097,15 @@ func (obj *isisInterface) SetSrlgValues(value []uint32) IsisInterface { // Name returns a string func (obj *isisInterface) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the IsisInterface object func (obj *isisInterface) SetName(value string) IsisInterface { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -56080,7 +56115,7 @@ func (obj *isisInterface) validateObj(vObj *validation, set_default bool) { } // EthName is required - if obj.obj.EthName == "" { + if obj.obj.EthName == nil { vObj.validationErrors = append(vObj.validationErrors, "EthName is required field on interface IsisInterface") } @@ -56161,7 +56196,7 @@ func (obj *isisInterface) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface IsisInterface") } } @@ -57990,14 +58025,15 @@ func (obj *isisV4RouteRange) SetRedistributionType(value IsisV4RouteRangeRedistr // Name returns a string func (obj *isisV4RouteRange) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the IsisV4RouteRange object func (obj *isisV4RouteRange) SetName(value string) IsisV4RouteRange { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -58122,7 +58158,7 @@ func (obj *isisV4RouteRange) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface IsisV4RouteRange") } } @@ -58624,14 +58660,15 @@ func (obj *isisV6RouteRange) SetRedistributionType(value IsisV6RouteRangeRedistr // Name returns a string func (obj *isisV6RouteRange) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the IsisV6RouteRange object func (obj *isisV6RouteRange) SetName(value string) IsisV6RouteRange { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -58756,7 +58793,7 @@ func (obj *isisV6RouteRange) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface IsisV6RouteRange") } } @@ -59038,7 +59075,8 @@ type BgpV4Interface interface { // Ipv4Name returns a string func (obj *bgpV4Interface) Ipv4Name() string { - return obj.obj.Ipv4Name + return *obj.obj.Ipv4Name + } // The unique name of the IPv4 or Loopback IPv4 interface used as the source IP for this list of BGP peers. @@ -59054,7 +59092,7 @@ func (obj *bgpV4Interface) Ipv4Name() string { // SetIpv4Name sets the string value in the BgpV4Interface object func (obj *bgpV4Interface) SetIpv4Name(value string) BgpV4Interface { - obj.obj.Ipv4Name = value + obj.obj.Ipv4Name = &value return obj } @@ -59151,7 +59189,7 @@ func (obj *bgpV4Interface) validateObj(vObj *validation, set_default bool) { } // Ipv4Name is required - if obj.obj.Ipv4Name == "" { + if obj.obj.Ipv4Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4Name is required field on interface BgpV4Interface") } @@ -59425,7 +59463,8 @@ type BgpV6Interface interface { // Ipv6Name returns a string func (obj *bgpV6Interface) Ipv6Name() string { - return obj.obj.Ipv6Name + return *obj.obj.Ipv6Name + } // The unique name of IPv6 or Loopback IPv6 interface used as the source IP for this list of BGP peers. @@ -59441,7 +59480,7 @@ func (obj *bgpV6Interface) Ipv6Name() string { // SetIpv6Name sets the string value in the BgpV6Interface object func (obj *bgpV6Interface) SetIpv6Name(value string) BgpV6Interface { - obj.obj.Ipv6Name = value + obj.obj.Ipv6Name = &value return obj } @@ -59538,7 +59577,7 @@ func (obj *bgpV6Interface) validateObj(vObj *validation, set_default bool) { } // Ipv6Name is required - if obj.obj.Ipv6Name == "" { + if obj.obj.Ipv6Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv6Name is required field on interface BgpV6Interface") } @@ -59826,7 +59865,8 @@ type VxlanV4Tunnel interface { // SourceInterface returns a string func (obj *vxlanV4Tunnel) SourceInterface() string { - return obj.obj.SourceInterface + return *obj.obj.SourceInterface + } // Determines the source interface. @@ -59842,7 +59882,7 @@ func (obj *vxlanV4Tunnel) SourceInterface() string { // SetSourceInterface sets the string value in the VxlanV4Tunnel object func (obj *vxlanV4Tunnel) SetSourceInterface(value string) VxlanV4Tunnel { - obj.obj.SourceInterface = value + obj.obj.SourceInterface = &value return obj } @@ -59878,14 +59918,15 @@ func (obj *vxlanV4Tunnel) SetDestinationIpMode(value VxlanV4TunnelDestinationIPM // Vni returns a uint32 func (obj *vxlanV4Tunnel) Vni() uint32 { - return obj.obj.Vni + return *obj.obj.Vni + } // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // SetVni sets the uint32 value in the VxlanV4Tunnel object func (obj *vxlanV4Tunnel) SetVni(value uint32) VxlanV4Tunnel { - obj.obj.Vni = value + obj.obj.Vni = &value return obj } @@ -59894,7 +59935,8 @@ func (obj *vxlanV4Tunnel) SetVni(value uint32) VxlanV4Tunnel { // Name returns a string func (obj *vxlanV4Tunnel) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. @@ -59902,7 +59944,7 @@ func (obj *vxlanV4Tunnel) Name() string { // SetName sets the string value in the VxlanV4Tunnel object func (obj *vxlanV4Tunnel) SetName(value string) VxlanV4Tunnel { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -59912,7 +59954,7 @@ func (obj *vxlanV4Tunnel) validateObj(vObj *validation, set_default bool) { } // SourceInterface is required - if obj.obj.SourceInterface == "" { + if obj.obj.SourceInterface == nil { vObj.validationErrors = append(vObj.validationErrors, "SourceInterface is required field on interface VxlanV4Tunnel") } @@ -59921,18 +59963,22 @@ func (obj *vxlanV4Tunnel) validateObj(vObj *validation, set_default bool) { obj.DestinationIpMode().validateObj(vObj, set_default) } - if obj.obj.Vni != 0 { + // Vni is required + if obj.obj.Vni == nil { + vObj.validationErrors = append(vObj.validationErrors, "Vni is required field on interface VxlanV4Tunnel") + } + if obj.obj.Vni != nil { - if obj.obj.Vni < 1 || obj.obj.Vni > 16777215 { + if *obj.obj.Vni < 1 || *obj.obj.Vni > 16777215 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= VxlanV4Tunnel.Vni <= 16777215 but Got %d", obj.obj.Vni)) + fmt.Sprintf("1 <= VxlanV4Tunnel.Vni <= 16777215 but Got %d", *obj.obj.Vni)) } } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface VxlanV4Tunnel") } } @@ -60205,7 +60251,8 @@ type VxlanV6Tunnel interface { // SourceInterface returns a string func (obj *vxlanV6Tunnel) SourceInterface() string { - return obj.obj.SourceInterface + return *obj.obj.SourceInterface + } // Determines the source interface. @@ -60221,7 +60268,7 @@ func (obj *vxlanV6Tunnel) SourceInterface() string { // SetSourceInterface sets the string value in the VxlanV6Tunnel object func (obj *vxlanV6Tunnel) SetSourceInterface(value string) VxlanV6Tunnel { - obj.obj.SourceInterface = value + obj.obj.SourceInterface = &value return obj } @@ -60257,14 +60304,15 @@ func (obj *vxlanV6Tunnel) SetDestinationIpMode(value VxlanV6TunnelDestinationIPM // Vni returns a uint32 func (obj *vxlanV6Tunnel) Vni() uint32 { - return obj.obj.Vni + return *obj.obj.Vni + } // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // SetVni sets the uint32 value in the VxlanV6Tunnel object func (obj *vxlanV6Tunnel) SetVni(value uint32) VxlanV6Tunnel { - obj.obj.Vni = value + obj.obj.Vni = &value return obj } @@ -60273,7 +60321,8 @@ func (obj *vxlanV6Tunnel) SetVni(value uint32) VxlanV6Tunnel { // Name returns a string func (obj *vxlanV6Tunnel) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. @@ -60281,7 +60330,7 @@ func (obj *vxlanV6Tunnel) Name() string { // SetName sets the string value in the VxlanV6Tunnel object func (obj *vxlanV6Tunnel) SetName(value string) VxlanV6Tunnel { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -60291,7 +60340,7 @@ func (obj *vxlanV6Tunnel) validateObj(vObj *validation, set_default bool) { } // SourceInterface is required - if obj.obj.SourceInterface == "" { + if obj.obj.SourceInterface == nil { vObj.validationErrors = append(vObj.validationErrors, "SourceInterface is required field on interface VxlanV6Tunnel") } @@ -60300,18 +60349,22 @@ func (obj *vxlanV6Tunnel) validateObj(vObj *validation, set_default bool) { obj.DestinationIpMode().validateObj(vObj, set_default) } - if obj.obj.Vni != 0 { + // Vni is required + if obj.obj.Vni == nil { + vObj.validationErrors = append(vObj.validationErrors, "Vni is required field on interface VxlanV6Tunnel") + } + if obj.obj.Vni != nil { - if obj.obj.Vni < 1 || obj.obj.Vni > 16777215 { + if *obj.obj.Vni < 1 || *obj.obj.Vni > 16777215 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= VxlanV6Tunnel.Vni <= 16777215 but Got %d", obj.obj.Vni)) + fmt.Sprintf("1 <= VxlanV6Tunnel.Vni <= 16777215 but Got %d", *obj.obj.Vni)) } } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface VxlanV6Tunnel") } } @@ -60615,7 +60668,8 @@ type RsvpIpv4Interface interface { // Ipv4Name returns a string func (obj *rsvpIpv4Interface) Ipv4Name() string { - return obj.obj.Ipv4Name + return *obj.obj.Ipv4Name + } // The globally unique name of the IPv4 interface connected to the DUT. This name must match the "name" field of the "ipv4_addresses" on top which this RSVP interface is configured. @@ -60629,7 +60683,7 @@ func (obj *rsvpIpv4Interface) Ipv4Name() string { // SetIpv4Name sets the string value in the RsvpIpv4Interface object func (obj *rsvpIpv4Interface) SetIpv4Name(value string) RsvpIpv4Interface { - obj.obj.Ipv4Name = value + obj.obj.Ipv4Name = &value return obj } @@ -60637,14 +60691,15 @@ func (obj *rsvpIpv4Interface) SetIpv4Name(value string) RsvpIpv4Interface { // NeighborIp returns a string func (obj *rsvpIpv4Interface) NeighborIp() string { - return obj.obj.NeighborIp + return *obj.obj.NeighborIp + } // IPv4 address of the RSVP neighbor on this interface. // SetNeighborIp sets the string value in the RsvpIpv4Interface object func (obj *rsvpIpv4Interface) SetNeighborIp(value string) RsvpIpv4Interface { - obj.obj.NeighborIp = value + obj.obj.NeighborIp = &value return obj } @@ -60852,15 +60907,15 @@ func (obj *rsvpIpv4Interface) validateObj(vObj *validation, set_default bool) { } // Ipv4Name is required - if obj.obj.Ipv4Name == "" { + if obj.obj.Ipv4Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4Name is required field on interface RsvpIpv4Interface") } // NeighborIp is required - if obj.obj.NeighborIp == "" { + if obj.obj.NeighborIp == nil { vObj.validationErrors = append(vObj.validationErrors, "NeighborIp is required field on interface RsvpIpv4Interface") } - if obj.obj.NeighborIp != "" { + if obj.obj.NeighborIp != nil { err := obj.validateIpv4(obj.NeighborIp()) if err != nil { @@ -61222,7 +61277,8 @@ type RsvpLspIpv4Interface interface { // Ipv4Name returns a string func (obj *rsvpLspIpv4Interface) Ipv4Name() string { - return obj.obj.Ipv4Name + return *obj.obj.Ipv4Name + } // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP ingress and egress endpoint for the LSPs configured on this interface. This must match the "name" field of either "ipv4_addresses" or "ipv4_loopbacks" on which this LSP interface is configured. @@ -61238,7 +61294,7 @@ func (obj *rsvpLspIpv4Interface) Ipv4Name() string { // SetIpv4Name sets the string value in the RsvpLspIpv4Interface object func (obj *rsvpLspIpv4Interface) SetIpv4Name(value string) RsvpLspIpv4Interface { - obj.obj.Ipv4Name = value + obj.obj.Ipv4Name = &value return obj } @@ -61363,7 +61419,7 @@ func (obj *rsvpLspIpv4Interface) validateObj(vObj *validation, set_default bool) } // Ipv4Name is required - if obj.obj.Ipv4Name == "" { + if obj.obj.Ipv4Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4Name is required field on interface RsvpLspIpv4Interface") } @@ -61647,7 +61703,8 @@ type FlowPort interface { // TxName returns a string func (obj *flowPort) TxName() string { - return obj.obj.TxName + return *obj.obj.TxName + } // The unique name of a port that is the transmit port. @@ -61663,7 +61720,7 @@ func (obj *flowPort) TxName() string { // SetTxName sets the string value in the FlowPort object func (obj *flowPort) SetTxName(value string) FlowPort { - obj.obj.TxName = value + obj.obj.TxName = &value return obj } @@ -61773,7 +61830,7 @@ func (obj *flowPort) validateObj(vObj *validation, set_default bool) { } // TxName is required - if obj.obj.TxName == "" { + if obj.obj.TxName == nil { vObj.validationErrors = append(vObj.validationErrors, "TxName is required field on interface FlowPort") } @@ -62223,15 +62280,6 @@ func (obj *flowRouter) validateObj(vObj *validation, set_default bool) { obj.setDefault() } - // TxNames is required - if obj.obj.TxNames == nil { - vObj.validationErrors = append(vObj.validationErrors, "TxNames is required field on interface FlowRouter") - } - - // RxNames is required - if obj.obj.RxNames == nil { - vObj.validationErrors = append(vObj.validationErrors, "RxNames is required field on interface FlowRouter") - } } func (obj *flowRouter) setDefault() { @@ -62483,14 +62531,15 @@ type FlowCustom interface { // Bytes returns a string func (obj *flowCustom) Bytes() string { - return obj.obj.Bytes + return *obj.obj.Bytes + } // A custom packet header defined as a string of hex bytes. The string MUST contain sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be discarded. This packet header can be used in multiple places in the packet. // SetBytes sets the string value in the FlowCustom object func (obj *flowCustom) SetBytes(value string) FlowCustom { - obj.obj.Bytes = value + obj.obj.Bytes = &value return obj } @@ -62589,7 +62638,7 @@ func (obj *flowCustom) validateObj(vObj *validation, set_default bool) { } // Bytes is required - if obj.obj.Bytes == "" { + if obj.obj.Bytes == nil { vObj.validationErrors = append(vObj.validationErrors, "Bytes is required field on interface FlowCustom") } @@ -76812,7 +76861,8 @@ func (obj *stateProtocolLacpAdmin) SetState(value StateProtocolLacpAdminStateEnu "%s is not a valid choice on StateProtocolLacpAdminStateEnum", string(value))) return obj } - obj.obj.State = otg.StateProtocolLacpAdmin_State_Enum(intValue) + enumValue := otg.StateProtocolLacpAdmin_State_Enum(intValue) + obj.obj.State = &enumValue return obj } @@ -76823,7 +76873,7 @@ func (obj *stateProtocolLacpAdmin) validateObj(vObj *validation, set_default boo } // State is required - if obj.obj.State.Number() == 0 { + if obj.obj.State == nil { vObj.validationErrors = append(vObj.validationErrors, "State is required field on interface StateProtocolLacpAdmin") } } @@ -79081,7 +79131,8 @@ func (obj *actionResponseProtocol) SetChoice(value ActionResponseProtocolChoiceE "%s is not a valid choice on ActionResponseProtocolChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionResponseProtocol_Choice_Enum(intValue) + enumValue := otg.ActionResponseProtocol_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Ipv6 = nil obj.ipv6Holder = nil obj.obj.Ipv4 = nil @@ -79160,7 +79211,7 @@ func (obj *actionResponseProtocol) validateObj(vObj *validation, set_default boo } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionResponseProtocol") } @@ -82028,14 +82079,15 @@ type IsisLspState interface { // LspId returns a string func (obj *isisLspState) LspId() string { - return obj.obj.LspId + return *obj.obj.LspId + } // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent Pseudonode ID and LSP number respectively. A pseudonode is a logical representation of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. Then the sequence number is incremented by 1. // SetLspId sets the string value in the IsisLspState object func (obj *isisLspState) SetLspId(value string) IsisLspState { - obj.obj.LspId = value + obj.obj.LspId = &value return obj } @@ -82232,7 +82284,7 @@ func (obj *isisLspState) validateObj(vObj *validation, set_default bool) { } // LspId is required - if obj.obj.LspId == "" { + if obj.obj.LspId == nil { vObj.validationErrors = append(vObj.validationErrors, "LspId is required field on interface IsisLspState") } @@ -85888,7 +85940,8 @@ func (obj *isisInterfaceAuthentication) SetAuthType(value IsisInterfaceAuthentic "%s is not a valid choice on IsisInterfaceAuthenticationAuthTypeEnum", string(value))) return obj } - obj.obj.AuthType = otg.IsisInterfaceAuthentication_AuthType_Enum(intValue) + enumValue := otg.IsisInterfaceAuthentication_AuthType_Enum(intValue) + obj.obj.AuthType = &enumValue return obj } @@ -85943,7 +85996,7 @@ func (obj *isisInterfaceAuthentication) validateObj(vObj *validation, set_defaul } // AuthType is required - if obj.obj.AuthType.Number() == 0 { + if obj.obj.AuthType == nil { vObj.validationErrors = append(vObj.validationErrors, "AuthType is required field on interface IsisInterfaceAuthentication") } @@ -87151,7 +87204,8 @@ func (obj *isisAuthenticationBase) SetAuthType(value IsisAuthenticationBaseAuthT "%s is not a valid choice on IsisAuthenticationBaseAuthTypeEnum", string(value))) return obj } - obj.obj.AuthType = otg.IsisAuthenticationBase_AuthType_Enum(intValue) + enumValue := otg.IsisAuthenticationBase_AuthType_Enum(intValue) + obj.obj.AuthType = &enumValue return obj } @@ -87206,7 +87260,7 @@ func (obj *isisAuthenticationBase) validateObj(vObj *validation, set_default boo } // AuthType is required - if obj.obj.AuthType.Number() == 0 { + if obj.obj.AuthType == nil { vObj.validationErrors = append(vObj.validationErrors, "AuthType is required field on interface IsisAuthenticationBase") } @@ -87488,14 +87542,15 @@ type V4RouteAddress interface { // Address returns a string func (obj *v4RouteAddress) Address() string { - return obj.obj.Address + return *obj.obj.Address + } // The starting address of the network. // SetAddress sets the string value in the V4RouteAddress object func (obj *v4RouteAddress) SetAddress(value string) V4RouteAddress { - obj.obj.Address = value + obj.obj.Address = &value return obj } @@ -87571,10 +87626,10 @@ func (obj *v4RouteAddress) validateObj(vObj *validation, set_default bool) { } // Address is required - if obj.obj.Address == "" { + if obj.obj.Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Address is required field on interface V4RouteAddress") } - if obj.obj.Address != "" { + if obj.obj.Address != nil { err := obj.validateIpv4(obj.Address()) if err != nil { @@ -87876,14 +87931,15 @@ type V6RouteAddress interface { // Address returns a string func (obj *v6RouteAddress) Address() string { - return obj.obj.Address + return *obj.obj.Address + } // The starting address of the network. // SetAddress sets the string value in the V6RouteAddress object func (obj *v6RouteAddress) SetAddress(value string) V6RouteAddress { - obj.obj.Address = value + obj.obj.Address = &value return obj } @@ -87959,10 +88015,10 @@ func (obj *v6RouteAddress) validateObj(vObj *validation, set_default bool) { } // Address is required - if obj.obj.Address == "" { + if obj.obj.Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Address is required field on interface V6RouteAddress") } - if obj.obj.Address != "" { + if obj.obj.Address != nil { err := obj.validateIpv6(obj.Address()) if err != nil { @@ -88331,14 +88387,15 @@ type BgpV4Peer interface { // PeerAddress returns a string func (obj *bgpV4Peer) PeerAddress() string { - return obj.obj.PeerAddress + return *obj.obj.PeerAddress + } // IPv4 address of the BGP peer for the session. // SetPeerAddress sets the string value in the BgpV4Peer object func (obj *bgpV4Peer) SetPeerAddress(value string) BgpV4Peer { - obj.obj.PeerAddress = value + obj.obj.PeerAddress = &value return obj } @@ -88465,7 +88522,8 @@ func (obj *bgpV4Peer) SetAsType(value BgpV4PeerAsTypeEnum) BgpV4Peer { "%s is not a valid choice on BgpV4PeerAsTypeEnum", string(value))) return obj } - obj.obj.AsType = otg.BgpV4Peer_AsType_Enum(intValue) + enumValue := otg.BgpV4Peer_AsType_Enum(intValue) + obj.obj.AsType = &enumValue return obj } @@ -88474,14 +88532,15 @@ func (obj *bgpV4Peer) SetAsType(value BgpV4PeerAsTypeEnum) BgpV4Peer { // AsNumber returns a uint32 func (obj *bgpV4Peer) AsNumber() uint32 { - return obj.obj.AsNumber + return *obj.obj.AsNumber + } // Autonomous System Number (AS number or ASN) // SetAsNumber sets the uint32 value in the BgpV4Peer object func (obj *bgpV4Peer) SetAsNumber(value uint32) BgpV4Peer { - obj.obj.AsNumber = value + obj.obj.AsNumber = &value return obj } @@ -88956,7 +89015,8 @@ func (obj *bgpV4PeerBgpSrteV6PolicyIter) appendHolderSlice(item BgpSrteV6Policy) // Name returns a string func (obj *bgpV4Peer) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. @@ -88964,7 +89024,7 @@ func (obj *bgpV4Peer) Name() string { // SetName sets the string value in the BgpV4Peer object func (obj *bgpV4Peer) SetName(value string) BgpV4Peer { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -89002,10 +89062,10 @@ func (obj *bgpV4Peer) validateObj(vObj *validation, set_default bool) { } // PeerAddress is required - if obj.obj.PeerAddress == "" { + if obj.obj.PeerAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "PeerAddress is required field on interface BgpV4Peer") } - if obj.obj.PeerAddress != "" { + if obj.obj.PeerAddress != nil { err := obj.validateIpv4(obj.PeerAddress()) if err != nil { @@ -89029,10 +89089,15 @@ func (obj *bgpV4Peer) validateObj(vObj *validation, set_default bool) { } // AsType is required - if obj.obj.AsType.Number() == 0 { + if obj.obj.AsType == nil { vObj.validationErrors = append(vObj.validationErrors, "AsType is required field on interface BgpV4Peer") } + // AsNumber is required + if obj.obj.AsNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "AsNumber is required field on interface BgpV4Peer") + } + if obj.obj.Advanced != nil { obj.Advanced().validateObj(vObj, set_default) @@ -89105,7 +89170,7 @@ func (obj *bgpV4Peer) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpV4Peer") } @@ -89449,14 +89514,15 @@ type BgpV6Peer interface { // PeerAddress returns a string func (obj *bgpV6Peer) PeerAddress() string { - return obj.obj.PeerAddress + return *obj.obj.PeerAddress + } // IPv6 address of the BGP peer for the session // SetPeerAddress sets the string value in the BgpV6Peer object func (obj *bgpV6Peer) SetPeerAddress(value string) BgpV6Peer { - obj.obj.PeerAddress = value + obj.obj.PeerAddress = &value return obj } @@ -89611,7 +89677,8 @@ func (obj *bgpV6Peer) SetAsType(value BgpV6PeerAsTypeEnum) BgpV6Peer { "%s is not a valid choice on BgpV6PeerAsTypeEnum", string(value))) return obj } - obj.obj.AsType = otg.BgpV6Peer_AsType_Enum(intValue) + enumValue := otg.BgpV6Peer_AsType_Enum(intValue) + obj.obj.AsType = &enumValue return obj } @@ -89620,14 +89687,15 @@ func (obj *bgpV6Peer) SetAsType(value BgpV6PeerAsTypeEnum) BgpV6Peer { // AsNumber returns a uint32 func (obj *bgpV6Peer) AsNumber() uint32 { - return obj.obj.AsNumber + return *obj.obj.AsNumber + } // Autonomous System Number (AS number or ASN) // SetAsNumber sets the uint32 value in the BgpV6Peer object func (obj *bgpV6Peer) SetAsNumber(value uint32) BgpV6Peer { - obj.obj.AsNumber = value + obj.obj.AsNumber = &value return obj } @@ -90102,7 +90170,8 @@ func (obj *bgpV6PeerBgpSrteV6PolicyIter) appendHolderSlice(item BgpSrteV6Policy) // Name returns a string func (obj *bgpV6Peer) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. @@ -90110,7 +90179,7 @@ func (obj *bgpV6Peer) Name() string { // SetName sets the string value in the BgpV6Peer object func (obj *bgpV6Peer) SetName(value string) BgpV6Peer { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -90148,10 +90217,10 @@ func (obj *bgpV6Peer) validateObj(vObj *validation, set_default bool) { } // PeerAddress is required - if obj.obj.PeerAddress == "" { + if obj.obj.PeerAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "PeerAddress is required field on interface BgpV6Peer") } - if obj.obj.PeerAddress != "" { + if obj.obj.PeerAddress != nil { err := obj.validateIpv6(obj.PeerAddress()) if err != nil { @@ -90180,10 +90249,15 @@ func (obj *bgpV6Peer) validateObj(vObj *validation, set_default bool) { } // AsType is required - if obj.obj.AsType.Number() == 0 { + if obj.obj.AsType == nil { vObj.validationErrors = append(vObj.validationErrors, "AsType is required field on interface BgpV6Peer") } + // AsNumber is required + if obj.obj.AsNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "AsNumber is required field on interface BgpV6Peer") + } + if obj.obj.Advanced != nil { obj.Advanced().validateObj(vObj, set_default) @@ -90256,7 +90330,7 @@ func (obj *bgpV6Peer) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpV6Peer") } @@ -91299,14 +91373,15 @@ type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp interface { // Name returns a string func (obj *rsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the RsvpLspIpv4InterfaceP2PEgressIpv4Lsp object func (obj *rsvpLspIpv4InterfaceP2PEgressIpv4Lsp) SetName(value string) RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -91440,7 +91515,7 @@ func (obj *rsvpLspIpv4InterfaceP2PEgressIpv4Lsp) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface RsvpLspIpv4InterfaceP2PEgressIpv4Lsp") } @@ -91813,14 +91888,15 @@ type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp interface { // Name returns a string func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the RsvpLspIpv4InterfaceP2PIngressIpv4Lsp object func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) SetName(value string) RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -91828,14 +91904,15 @@ func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) SetName(value string) RsvpLspI // RemoteAddress returns a string func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) RemoteAddress() string { - return obj.obj.RemoteAddress + return *obj.obj.RemoteAddress + } // IPv4 address of the remote endpoint of the LSP. // SetRemoteAddress sets the string value in the RsvpLspIpv4InterfaceP2PIngressIpv4Lsp object func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) SetRemoteAddress(value string) RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { - obj.obj.RemoteAddress = value + obj.obj.RemoteAddress = &value return obj } @@ -92095,15 +92172,15 @@ func (obj *rsvpLspIpv4InterfaceP2PIngressIpv4Lsp) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface RsvpLspIpv4InterfaceP2PIngressIpv4Lsp") } // RemoteAddress is required - if obj.obj.RemoteAddress == "" { + if obj.obj.RemoteAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteAddress is required field on interface RsvpLspIpv4InterfaceP2PIngressIpv4Lsp") } - if obj.obj.RemoteAddress != "" { + if obj.obj.RemoteAddress != nil { err := obj.validateIpv4(obj.RemoteAddress()) if err != nil { @@ -92461,7 +92538,8 @@ type FlowCustomMetricTag interface { // Name returns a string func (obj *flowCustomMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable @@ -92469,7 +92547,7 @@ func (obj *flowCustomMetricTag) Name() string { // SetName sets the string value in the FlowCustomMetricTag object func (obj *flowCustomMetricTag) SetName(value string) FlowCustomMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -92526,7 +92604,7 @@ func (obj *flowCustomMetricTag) validateObj(vObj *validation, set_default bool) } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface FlowCustomMetricTag") } @@ -166727,7 +166805,8 @@ func (obj *actionResponseProtocolIpv4) SetChoice(value ActionResponseProtocolIpv "%s is not a valid choice on ActionResponseProtocolIpv4ChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionResponseProtocolIpv4_Choice_Enum(intValue) + enumValue := otg.ActionResponseProtocolIpv4_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Ping = nil obj.pingHolder = nil @@ -166772,7 +166851,7 @@ func (obj *actionResponseProtocolIpv4) validateObj(vObj *validation, set_default } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionResponseProtocolIpv4") } @@ -167050,7 +167129,8 @@ func (obj *actionResponseProtocolIpv6) SetChoice(value ActionResponseProtocolIpv "%s is not a valid choice on ActionResponseProtocolIpv6ChoiceEnum", string(value))) return obj } - obj.obj.Choice = otg.ActionResponseProtocolIpv6_Choice_Enum(intValue) + enumValue := otg.ActionResponseProtocolIpv6_Choice_Enum(intValue) + obj.obj.Choice = &enumValue obj.obj.Ping = nil obj.pingHolder = nil @@ -167095,7 +167175,7 @@ func (obj *actionResponseProtocolIpv6) validateObj(vObj *validation, set_default } // Choice is required - if obj.obj.Choice.Number() == 0 { + if obj.obj.Choice == nil { vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface ActionResponseProtocolIpv6") } @@ -174323,14 +174403,15 @@ func (obj *bgpV4RouteRange) SetAddPath(value BgpAddPath) BgpV4RouteRange { // Name returns a string func (obj *bgpV4RouteRange) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpV4RouteRange object func (obj *bgpV4RouteRange) SetName(value string) BgpV4RouteRange { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -174579,7 +174660,7 @@ func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpV4RouteRange") } @@ -175313,14 +175394,15 @@ func (obj *bgpV6RouteRange) SetAddPath(value BgpAddPath) BgpV6RouteRange { // Name returns a string func (obj *bgpV6RouteRange) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpV6RouteRange object func (obj *bgpV6RouteRange) SetName(value string) BgpV6RouteRange { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -175569,7 +175651,7 @@ func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpV6RouteRange") } @@ -175993,14 +176075,15 @@ func (obj *bgpSrteV4Policy) SetColor(value uint32) BgpSrteV4Policy { // Ipv4Endpoint returns a string func (obj *bgpSrteV4Policy) Ipv4Endpoint() string { - return obj.obj.Ipv4Endpoint + return *obj.obj.Ipv4Endpoint + } // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected on the basis of the SR Policy type (AFI). // SetIpv4Endpoint sets the string value in the BgpSrteV4Policy object func (obj *bgpSrteV4Policy) SetIpv4Endpoint(value string) BgpSrteV4Policy { - obj.obj.Ipv4Endpoint = value + obj.obj.Ipv4Endpoint = &value return obj } @@ -176465,14 +176548,15 @@ func (obj *bgpSrteV4PolicyBgpSrteV4TunnelTlvIter) appendHolderSlice(item BgpSrte // Name returns a string func (obj *bgpSrteV4Policy) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteV4Policy object func (obj *bgpSrteV4Policy) SetName(value string) BgpSrteV4Policy { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -176504,10 +176588,10 @@ func (obj *bgpSrteV4Policy) validateObj(vObj *validation, set_default bool) { } // Ipv4Endpoint is required - if obj.obj.Ipv4Endpoint == "" { + if obj.obj.Ipv4Endpoint == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4Endpoint is required field on interface BgpSrteV4Policy") } - if obj.obj.Ipv4Endpoint != "" { + if obj.obj.Ipv4Endpoint != nil { err := obj.validateIpv4(obj.Ipv4Endpoint()) if err != nil { @@ -176592,7 +176676,7 @@ func (obj *bgpSrteV4Policy) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteV4Policy") } } @@ -176988,14 +177072,15 @@ func (obj *bgpSrteV6Policy) SetColor(value uint32) BgpSrteV6Policy { // Ipv6Endpoint returns a string func (obj *bgpSrteV6Policy) Ipv6Endpoint() string { - return obj.obj.Ipv6Endpoint + return *obj.obj.Ipv6Endpoint + } // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected on the basis of the SR Policy type (AFI). // SetIpv6Endpoint sets the string value in the BgpSrteV6Policy object func (obj *bgpSrteV6Policy) SetIpv6Endpoint(value string) BgpSrteV6Policy { - obj.obj.Ipv6Endpoint = value + obj.obj.Ipv6Endpoint = &value return obj } @@ -177460,14 +177545,15 @@ func (obj *bgpSrteV6PolicyBgpSrteV6TunnelTlvIter) appendHolderSlice(item BgpSrte // Name returns a string func (obj *bgpSrteV6Policy) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteV6Policy object func (obj *bgpSrteV6Policy) SetName(value string) BgpSrteV6Policy { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -177499,10 +177585,10 @@ func (obj *bgpSrteV6Policy) validateObj(vObj *validation, set_default bool) { } // Ipv6Endpoint is required - if obj.obj.Ipv6Endpoint == "" { + if obj.obj.Ipv6Endpoint == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv6Endpoint is required field on interface BgpSrteV6Policy") } - if obj.obj.Ipv6Endpoint != "" { + if obj.obj.Ipv6Endpoint != nil { err := obj.validateIpv6(obj.Ipv6Endpoint()) if err != nil { @@ -177587,7 +177673,7 @@ func (obj *bgpSrteV6Policy) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteV6Policy") } } @@ -183148,14 +183234,15 @@ type PatternFlowEthernetDstMetricTag interface { // Name returns a string func (obj *patternFlowEthernetDstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetDstMetricTag object func (obj *patternFlowEthernetDstMetricTag) SetName(value string) PatternFlowEthernetDstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -183209,7 +183296,7 @@ func (obj *patternFlowEthernetDstMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetDstMetricTag") } @@ -183831,14 +183918,15 @@ type PatternFlowEthernetSrcMetricTag interface { // Name returns a string func (obj *patternFlowEthernetSrcMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetSrcMetricTag object func (obj *patternFlowEthernetSrcMetricTag) SetName(value string) PatternFlowEthernetSrcMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -183892,7 +183980,7 @@ func (obj *patternFlowEthernetSrcMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetSrcMetricTag") } @@ -184526,14 +184614,15 @@ type PatternFlowEthernetEtherTypeMetricTag interface { // Name returns a string func (obj *patternFlowEthernetEtherTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetEtherTypeMetricTag object func (obj *patternFlowEthernetEtherTypeMetricTag) SetName(value string) PatternFlowEthernetEtherTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -184587,7 +184676,7 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetEtherTypeMetricTag") } @@ -185221,14 +185310,15 @@ type PatternFlowEthernetPfcQueueMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPfcQueueMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPfcQueueMetricTag object func (obj *patternFlowEthernetPfcQueueMetricTag) SetName(value string) PatternFlowEthernetPfcQueueMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -185282,7 +185372,7 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPfcQueueMetricTag") } @@ -185916,14 +186006,15 @@ type PatternFlowVlanPriorityMetricTag interface { // Name returns a string func (obj *patternFlowVlanPriorityMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanPriorityMetricTag object func (obj *patternFlowVlanPriorityMetricTag) SetName(value string) PatternFlowVlanPriorityMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -185977,7 +186068,7 @@ func (obj *patternFlowVlanPriorityMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVlanPriorityMetricTag") } @@ -186611,14 +186702,15 @@ type PatternFlowVlanCfiMetricTag interface { // Name returns a string func (obj *patternFlowVlanCfiMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanCfiMetricTag object func (obj *patternFlowVlanCfiMetricTag) SetName(value string) PatternFlowVlanCfiMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -186672,7 +186764,7 @@ func (obj *patternFlowVlanCfiMetricTag) validateObj(vObj *validation, set_defaul } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVlanCfiMetricTag") } @@ -187306,14 +187398,15 @@ type PatternFlowVlanIdMetricTag interface { // Name returns a string func (obj *patternFlowVlanIdMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanIdMetricTag object func (obj *patternFlowVlanIdMetricTag) SetName(value string) PatternFlowVlanIdMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -187367,7 +187460,7 @@ func (obj *patternFlowVlanIdMetricTag) validateObj(vObj *validation, set_default } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVlanIdMetricTag") } @@ -188001,14 +188094,15 @@ type PatternFlowVlanTpidMetricTag interface { // Name returns a string func (obj *patternFlowVlanTpidMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanTpidMetricTag object func (obj *patternFlowVlanTpidMetricTag) SetName(value string) PatternFlowVlanTpidMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -188062,7 +188156,7 @@ func (obj *patternFlowVlanTpidMetricTag) validateObj(vObj *validation, set_defau } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVlanTpidMetricTag") } @@ -188696,14 +188790,15 @@ type PatternFlowVxlanFlagsMetricTag interface { // Name returns a string func (obj *patternFlowVxlanFlagsMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanFlagsMetricTag object func (obj *patternFlowVxlanFlagsMetricTag) SetName(value string) PatternFlowVxlanFlagsMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -188757,7 +188852,7 @@ func (obj *patternFlowVxlanFlagsMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVxlanFlagsMetricTag") } @@ -189391,14 +189486,15 @@ type PatternFlowVxlanReserved0MetricTag interface { // Name returns a string func (obj *patternFlowVxlanReserved0MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanReserved0MetricTag object func (obj *patternFlowVxlanReserved0MetricTag) SetName(value string) PatternFlowVxlanReserved0MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -189452,7 +189548,7 @@ func (obj *patternFlowVxlanReserved0MetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVxlanReserved0MetricTag") } @@ -190086,14 +190182,15 @@ type PatternFlowVxlanVniMetricTag interface { // Name returns a string func (obj *patternFlowVxlanVniMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanVniMetricTag object func (obj *patternFlowVxlanVniMetricTag) SetName(value string) PatternFlowVxlanVniMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -190147,7 +190244,7 @@ func (obj *patternFlowVxlanVniMetricTag) validateObj(vObj *validation, set_defau } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVxlanVniMetricTag") } @@ -190781,14 +190878,15 @@ type PatternFlowVxlanReserved1MetricTag interface { // Name returns a string func (obj *patternFlowVxlanReserved1MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanReserved1MetricTag object func (obj *patternFlowVxlanReserved1MetricTag) SetName(value string) PatternFlowVxlanReserved1MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -190842,7 +190940,7 @@ func (obj *patternFlowVxlanReserved1MetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowVxlanReserved1MetricTag") } @@ -191476,14 +191574,15 @@ type PatternFlowIpv4VersionMetricTag interface { // Name returns a string func (obj *patternFlowIpv4VersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4VersionMetricTag object func (obj *patternFlowIpv4VersionMetricTag) SetName(value string) PatternFlowIpv4VersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -191537,7 +191636,7 @@ func (obj *patternFlowIpv4VersionMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4VersionMetricTag") } @@ -192171,14 +192270,15 @@ type PatternFlowIpv4HeaderLengthMetricTag interface { // Name returns a string func (obj *patternFlowIpv4HeaderLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4HeaderLengthMetricTag object func (obj *patternFlowIpv4HeaderLengthMetricTag) SetName(value string) PatternFlowIpv4HeaderLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -192232,7 +192332,7 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4HeaderLengthMetricTag") } @@ -194273,14 +194373,15 @@ type PatternFlowIpv4TotalLengthMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TotalLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TotalLengthMetricTag object func (obj *patternFlowIpv4TotalLengthMetricTag) SetName(value string) PatternFlowIpv4TotalLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -194334,7 +194435,7 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TotalLengthMetricTag") } @@ -194968,14 +195069,15 @@ type PatternFlowIpv4IdentificationMetricTag interface { // Name returns a string func (obj *patternFlowIpv4IdentificationMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4IdentificationMetricTag object func (obj *patternFlowIpv4IdentificationMetricTag) SetName(value string) PatternFlowIpv4IdentificationMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -195029,7 +195131,7 @@ func (obj *patternFlowIpv4IdentificationMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4IdentificationMetricTag") } @@ -195663,14 +195765,15 @@ type PatternFlowIpv4ReservedMetricTag interface { // Name returns a string func (obj *patternFlowIpv4ReservedMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4ReservedMetricTag object func (obj *patternFlowIpv4ReservedMetricTag) SetName(value string) PatternFlowIpv4ReservedMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -195724,7 +195827,7 @@ func (obj *patternFlowIpv4ReservedMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4ReservedMetricTag") } @@ -196358,14 +196461,15 @@ type PatternFlowIpv4DontFragmentMetricTag interface { // Name returns a string func (obj *patternFlowIpv4DontFragmentMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DontFragmentMetricTag object func (obj *patternFlowIpv4DontFragmentMetricTag) SetName(value string) PatternFlowIpv4DontFragmentMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -196419,7 +196523,7 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DontFragmentMetricTag") } @@ -197053,14 +197157,15 @@ type PatternFlowIpv4MoreFragmentsMetricTag interface { // Name returns a string func (obj *patternFlowIpv4MoreFragmentsMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4MoreFragmentsMetricTag object func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetName(value string) PatternFlowIpv4MoreFragmentsMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -197114,7 +197219,7 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4MoreFragmentsMetricTag") } @@ -197748,14 +197853,15 @@ type PatternFlowIpv4FragmentOffsetMetricTag interface { // Name returns a string func (obj *patternFlowIpv4FragmentOffsetMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4FragmentOffsetMetricTag object func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetName(value string) PatternFlowIpv4FragmentOffsetMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -197809,7 +197915,7 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4FragmentOffsetMetricTag") } @@ -198443,14 +198549,15 @@ type PatternFlowIpv4TimeToLiveMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TimeToLiveMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TimeToLiveMetricTag object func (obj *patternFlowIpv4TimeToLiveMetricTag) SetName(value string) PatternFlowIpv4TimeToLiveMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -198504,7 +198611,7 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TimeToLiveMetricTag") } @@ -199138,14 +199245,15 @@ type PatternFlowIpv4ProtocolMetricTag interface { // Name returns a string func (obj *patternFlowIpv4ProtocolMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4ProtocolMetricTag object func (obj *patternFlowIpv4ProtocolMetricTag) SetName(value string) PatternFlowIpv4ProtocolMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -199199,7 +199307,7 @@ func (obj *patternFlowIpv4ProtocolMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4ProtocolMetricTag") } @@ -199821,14 +199929,15 @@ type PatternFlowIpv4SrcMetricTag interface { // Name returns a string func (obj *patternFlowIpv4SrcMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4SrcMetricTag object func (obj *patternFlowIpv4SrcMetricTag) SetName(value string) PatternFlowIpv4SrcMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -199882,7 +199991,7 @@ func (obj *patternFlowIpv4SrcMetricTag) validateObj(vObj *validation, set_defaul } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4SrcMetricTag") } @@ -200504,14 +200613,15 @@ type PatternFlowIpv4DstMetricTag interface { // Name returns a string func (obj *patternFlowIpv4DstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DstMetricTag object func (obj *patternFlowIpv4DstMetricTag) SetName(value string) PatternFlowIpv4DstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -200565,7 +200675,7 @@ func (obj *patternFlowIpv4DstMetricTag) validateObj(vObj *validation, set_defaul } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DstMetricTag") } @@ -201199,14 +201309,15 @@ type PatternFlowIpv6VersionMetricTag interface { // Name returns a string func (obj *patternFlowIpv6VersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6VersionMetricTag object func (obj *patternFlowIpv6VersionMetricTag) SetName(value string) PatternFlowIpv6VersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -201260,7 +201371,7 @@ func (obj *patternFlowIpv6VersionMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6VersionMetricTag") } @@ -201894,14 +202005,15 @@ type PatternFlowIpv6TrafficClassMetricTag interface { // Name returns a string func (obj *patternFlowIpv6TrafficClassMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6TrafficClassMetricTag object func (obj *patternFlowIpv6TrafficClassMetricTag) SetName(value string) PatternFlowIpv6TrafficClassMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -201955,7 +202067,7 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6TrafficClassMetricTag") } @@ -202589,14 +202701,15 @@ type PatternFlowIpv6FlowLabelMetricTag interface { // Name returns a string func (obj *patternFlowIpv6FlowLabelMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6FlowLabelMetricTag object func (obj *patternFlowIpv6FlowLabelMetricTag) SetName(value string) PatternFlowIpv6FlowLabelMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -202650,7 +202763,7 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6FlowLabelMetricTag") } @@ -203284,14 +203397,15 @@ type PatternFlowIpv6PayloadLengthMetricTag interface { // Name returns a string func (obj *patternFlowIpv6PayloadLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6PayloadLengthMetricTag object func (obj *patternFlowIpv6PayloadLengthMetricTag) SetName(value string) PatternFlowIpv6PayloadLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -203345,7 +203459,7 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6PayloadLengthMetricTag") } @@ -203979,14 +204093,15 @@ type PatternFlowIpv6NextHeaderMetricTag interface { // Name returns a string func (obj *patternFlowIpv6NextHeaderMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6NextHeaderMetricTag object func (obj *patternFlowIpv6NextHeaderMetricTag) SetName(value string) PatternFlowIpv6NextHeaderMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -204040,7 +204155,7 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6NextHeaderMetricTag") } @@ -204674,14 +204789,15 @@ type PatternFlowIpv6HopLimitMetricTag interface { // Name returns a string func (obj *patternFlowIpv6HopLimitMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6HopLimitMetricTag object func (obj *patternFlowIpv6HopLimitMetricTag) SetName(value string) PatternFlowIpv6HopLimitMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -204735,7 +204851,7 @@ func (obj *patternFlowIpv6HopLimitMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6HopLimitMetricTag") } @@ -205357,14 +205473,15 @@ type PatternFlowIpv6SrcMetricTag interface { // Name returns a string func (obj *patternFlowIpv6SrcMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6SrcMetricTag object func (obj *patternFlowIpv6SrcMetricTag) SetName(value string) PatternFlowIpv6SrcMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -205418,7 +205535,7 @@ func (obj *patternFlowIpv6SrcMetricTag) validateObj(vObj *validation, set_defaul } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6SrcMetricTag") } @@ -206040,14 +206157,15 @@ type PatternFlowIpv6DstMetricTag interface { // Name returns a string func (obj *patternFlowIpv6DstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6DstMetricTag object func (obj *patternFlowIpv6DstMetricTag) SetName(value string) PatternFlowIpv6DstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -206101,7 +206219,7 @@ func (obj *patternFlowIpv6DstMetricTag) validateObj(vObj *validation, set_defaul } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv6DstMetricTag") } @@ -206723,14 +206841,15 @@ type PatternFlowPfcPauseDstMetricTag interface { // Name returns a string func (obj *patternFlowPfcPauseDstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseDstMetricTag object func (obj *patternFlowPfcPauseDstMetricTag) SetName(value string) PatternFlowPfcPauseDstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -206784,7 +206903,7 @@ func (obj *patternFlowPfcPauseDstMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPauseDstMetricTag") } @@ -207406,14 +207525,15 @@ type PatternFlowPfcPauseSrcMetricTag interface { // Name returns a string func (obj *patternFlowPfcPauseSrcMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseSrcMetricTag object func (obj *patternFlowPfcPauseSrcMetricTag) SetName(value string) PatternFlowPfcPauseSrcMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -207467,7 +207587,7 @@ func (obj *patternFlowPfcPauseSrcMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPauseSrcMetricTag") } @@ -208101,14 +208221,15 @@ type PatternFlowPfcPauseEtherTypeMetricTag interface { // Name returns a string func (obj *patternFlowPfcPauseEtherTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseEtherTypeMetricTag object func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetName(value string) PatternFlowPfcPauseEtherTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -208162,7 +208283,7 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPauseEtherTypeMetricTag") } @@ -208796,14 +208917,15 @@ type PatternFlowPfcPauseControlOpCodeMetricTag interface { // Name returns a string func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseControlOpCodeMetricTag object func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetName(value string) PatternFlowPfcPauseControlOpCodeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -208857,7 +208979,7 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPauseControlOpCodeMetricTag") } @@ -209491,14 +209613,15 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag interface { // Name returns a string func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseClassEnableVectorMetricTag object func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetName(value string) PatternFlowPfcPauseClassEnableVectorMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -209552,7 +209675,7 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) validateObj(vObj *vali } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPauseClassEnableVectorMetricTag") } @@ -210186,14 +210309,15 @@ type PatternFlowPfcPausePauseClass0MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass0MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass0MetricTag object func (obj *patternFlowPfcPausePauseClass0MetricTag) SetName(value string) PatternFlowPfcPausePauseClass0MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -210247,7 +210371,7 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass0MetricTag") } @@ -210881,14 +211005,15 @@ type PatternFlowPfcPausePauseClass1MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass1MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass1MetricTag object func (obj *patternFlowPfcPausePauseClass1MetricTag) SetName(value string) PatternFlowPfcPausePauseClass1MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -210942,7 +211067,7 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass1MetricTag") } @@ -211576,14 +211701,15 @@ type PatternFlowPfcPausePauseClass2MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass2MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass2MetricTag object func (obj *patternFlowPfcPausePauseClass2MetricTag) SetName(value string) PatternFlowPfcPausePauseClass2MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -211637,7 +211763,7 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass2MetricTag") } @@ -212271,14 +212397,15 @@ type PatternFlowPfcPausePauseClass3MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass3MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass3MetricTag object func (obj *patternFlowPfcPausePauseClass3MetricTag) SetName(value string) PatternFlowPfcPausePauseClass3MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -212332,7 +212459,7 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass3MetricTag") } @@ -212966,14 +213093,15 @@ type PatternFlowPfcPausePauseClass4MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass4MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass4MetricTag object func (obj *patternFlowPfcPausePauseClass4MetricTag) SetName(value string) PatternFlowPfcPausePauseClass4MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -213027,7 +213155,7 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass4MetricTag") } @@ -213661,14 +213789,15 @@ type PatternFlowPfcPausePauseClass5MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass5MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass5MetricTag object func (obj *patternFlowPfcPausePauseClass5MetricTag) SetName(value string) PatternFlowPfcPausePauseClass5MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -213722,7 +213851,7 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass5MetricTag") } @@ -214356,14 +214485,15 @@ type PatternFlowPfcPausePauseClass6MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass6MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass6MetricTag object func (obj *patternFlowPfcPausePauseClass6MetricTag) SetName(value string) PatternFlowPfcPausePauseClass6MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -214417,7 +214547,7 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass6MetricTag") } @@ -215051,14 +215181,15 @@ type PatternFlowPfcPausePauseClass7MetricTag interface { // Name returns a string func (obj *patternFlowPfcPausePauseClass7MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass7MetricTag object func (obj *patternFlowPfcPausePauseClass7MetricTag) SetName(value string) PatternFlowPfcPausePauseClass7MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -215112,7 +215243,7 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPfcPausePauseClass7MetricTag") } @@ -215734,14 +215865,15 @@ type PatternFlowEthernetPauseDstMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPauseDstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseDstMetricTag object func (obj *patternFlowEthernetPauseDstMetricTag) SetName(value string) PatternFlowEthernetPauseDstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -215795,7 +215927,7 @@ func (obj *patternFlowEthernetPauseDstMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPauseDstMetricTag") } @@ -216417,14 +216549,15 @@ type PatternFlowEthernetPauseSrcMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPauseSrcMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseSrcMetricTag object func (obj *patternFlowEthernetPauseSrcMetricTag) SetName(value string) PatternFlowEthernetPauseSrcMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -216478,7 +216611,7 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPauseSrcMetricTag") } @@ -217112,14 +217245,15 @@ type PatternFlowEthernetPauseEtherTypeMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseEtherTypeMetricTag object func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetName(value string) PatternFlowEthernetPauseEtherTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -217173,7 +217307,7 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) validateObj(vObj *validat } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPauseEtherTypeMetricTag") } @@ -217807,14 +217941,15 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseControlOpCodeMetricTag object func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetName(value string) PatternFlowEthernetPauseControlOpCodeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -217868,7 +218003,7 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) validateObj(vObj *val } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPauseControlOpCodeMetricTag") } @@ -218502,14 +218637,15 @@ type PatternFlowEthernetPauseTimeMetricTag interface { // Name returns a string func (obj *patternFlowEthernetPauseTimeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseTimeMetricTag object func (obj *patternFlowEthernetPauseTimeMetricTag) SetName(value string) PatternFlowEthernetPauseTimeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -218563,7 +218699,7 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowEthernetPauseTimeMetricTag") } @@ -219197,14 +219333,15 @@ type PatternFlowTcpSrcPortMetricTag interface { // Name returns a string func (obj *patternFlowTcpSrcPortMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpSrcPortMetricTag object func (obj *patternFlowTcpSrcPortMetricTag) SetName(value string) PatternFlowTcpSrcPortMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -219258,7 +219395,7 @@ func (obj *patternFlowTcpSrcPortMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpSrcPortMetricTag") } @@ -219892,14 +220029,15 @@ type PatternFlowTcpDstPortMetricTag interface { // Name returns a string func (obj *patternFlowTcpDstPortMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpDstPortMetricTag object func (obj *patternFlowTcpDstPortMetricTag) SetName(value string) PatternFlowTcpDstPortMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -219953,7 +220091,7 @@ func (obj *patternFlowTcpDstPortMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpDstPortMetricTag") } @@ -220557,14 +220695,15 @@ type PatternFlowTcpSeqNumMetricTag interface { // Name returns a string func (obj *patternFlowTcpSeqNumMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpSeqNumMetricTag object func (obj *patternFlowTcpSeqNumMetricTag) SetName(value string) PatternFlowTcpSeqNumMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -220618,7 +220757,7 @@ func (obj *patternFlowTcpSeqNumMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpSeqNumMetricTag") } @@ -221222,14 +221361,15 @@ type PatternFlowTcpAckNumMetricTag interface { // Name returns a string func (obj *patternFlowTcpAckNumMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpAckNumMetricTag object func (obj *patternFlowTcpAckNumMetricTag) SetName(value string) PatternFlowTcpAckNumMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -221283,7 +221423,7 @@ func (obj *patternFlowTcpAckNumMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpAckNumMetricTag") } @@ -221917,14 +222057,15 @@ type PatternFlowTcpDataOffsetMetricTag interface { // Name returns a string func (obj *patternFlowTcpDataOffsetMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpDataOffsetMetricTag object func (obj *patternFlowTcpDataOffsetMetricTag) SetName(value string) PatternFlowTcpDataOffsetMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -221978,7 +222119,7 @@ func (obj *patternFlowTcpDataOffsetMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpDataOffsetMetricTag") } @@ -222612,14 +222753,15 @@ type PatternFlowTcpEcnNsMetricTag interface { // Name returns a string func (obj *patternFlowTcpEcnNsMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnNsMetricTag object func (obj *patternFlowTcpEcnNsMetricTag) SetName(value string) PatternFlowTcpEcnNsMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -222673,7 +222815,7 @@ func (obj *patternFlowTcpEcnNsMetricTag) validateObj(vObj *validation, set_defau } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpEcnNsMetricTag") } @@ -223307,14 +223449,15 @@ type PatternFlowTcpEcnCwrMetricTag interface { // Name returns a string func (obj *patternFlowTcpEcnCwrMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnCwrMetricTag object func (obj *patternFlowTcpEcnCwrMetricTag) SetName(value string) PatternFlowTcpEcnCwrMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -223368,7 +223511,7 @@ func (obj *patternFlowTcpEcnCwrMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpEcnCwrMetricTag") } @@ -224002,14 +224145,15 @@ type PatternFlowTcpEcnEchoMetricTag interface { // Name returns a string func (obj *patternFlowTcpEcnEchoMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnEchoMetricTag object func (obj *patternFlowTcpEcnEchoMetricTag) SetName(value string) PatternFlowTcpEcnEchoMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -224063,7 +224207,7 @@ func (obj *patternFlowTcpEcnEchoMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpEcnEchoMetricTag") } @@ -224697,14 +224841,15 @@ type PatternFlowTcpCtlUrgMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlUrgMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlUrgMetricTag object func (obj *patternFlowTcpCtlUrgMetricTag) SetName(value string) PatternFlowTcpCtlUrgMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -224758,7 +224903,7 @@ func (obj *patternFlowTcpCtlUrgMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlUrgMetricTag") } @@ -225392,14 +225537,15 @@ type PatternFlowTcpCtlAckMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlAckMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlAckMetricTag object func (obj *patternFlowTcpCtlAckMetricTag) SetName(value string) PatternFlowTcpCtlAckMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -225453,7 +225599,7 @@ func (obj *patternFlowTcpCtlAckMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlAckMetricTag") } @@ -226087,14 +226233,15 @@ type PatternFlowTcpCtlPshMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlPshMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlPshMetricTag object func (obj *patternFlowTcpCtlPshMetricTag) SetName(value string) PatternFlowTcpCtlPshMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -226148,7 +226295,7 @@ func (obj *patternFlowTcpCtlPshMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlPshMetricTag") } @@ -226782,14 +226929,15 @@ type PatternFlowTcpCtlRstMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlRstMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlRstMetricTag object func (obj *patternFlowTcpCtlRstMetricTag) SetName(value string) PatternFlowTcpCtlRstMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -226843,7 +226991,7 @@ func (obj *patternFlowTcpCtlRstMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlRstMetricTag") } @@ -227477,14 +227625,15 @@ type PatternFlowTcpCtlSynMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlSynMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlSynMetricTag object func (obj *patternFlowTcpCtlSynMetricTag) SetName(value string) PatternFlowTcpCtlSynMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -227538,7 +227687,7 @@ func (obj *patternFlowTcpCtlSynMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlSynMetricTag") } @@ -228172,14 +228321,15 @@ type PatternFlowTcpCtlFinMetricTag interface { // Name returns a string func (obj *patternFlowTcpCtlFinMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlFinMetricTag object func (obj *patternFlowTcpCtlFinMetricTag) SetName(value string) PatternFlowTcpCtlFinMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -228233,7 +228383,7 @@ func (obj *patternFlowTcpCtlFinMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpCtlFinMetricTag") } @@ -228867,14 +229017,15 @@ type PatternFlowTcpWindowMetricTag interface { // Name returns a string func (obj *patternFlowTcpWindowMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpWindowMetricTag object func (obj *patternFlowTcpWindowMetricTag) SetName(value string) PatternFlowTcpWindowMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -228928,7 +229079,7 @@ func (obj *patternFlowTcpWindowMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowTcpWindowMetricTag") } @@ -229562,14 +229713,15 @@ type PatternFlowUdpSrcPortMetricTag interface { // Name returns a string func (obj *patternFlowUdpSrcPortMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpSrcPortMetricTag object func (obj *patternFlowUdpSrcPortMetricTag) SetName(value string) PatternFlowUdpSrcPortMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -229623,7 +229775,7 @@ func (obj *patternFlowUdpSrcPortMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowUdpSrcPortMetricTag") } @@ -230257,14 +230409,15 @@ type PatternFlowUdpDstPortMetricTag interface { // Name returns a string func (obj *patternFlowUdpDstPortMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpDstPortMetricTag object func (obj *patternFlowUdpDstPortMetricTag) SetName(value string) PatternFlowUdpDstPortMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -230318,7 +230471,7 @@ func (obj *patternFlowUdpDstPortMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowUdpDstPortMetricTag") } @@ -230952,14 +231105,15 @@ type PatternFlowUdpLengthMetricTag interface { // Name returns a string func (obj *patternFlowUdpLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpLengthMetricTag object func (obj *patternFlowUdpLengthMetricTag) SetName(value string) PatternFlowUdpLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -231013,7 +231167,7 @@ func (obj *patternFlowUdpLengthMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowUdpLengthMetricTag") } @@ -231647,14 +231801,15 @@ type PatternFlowGreChecksumPresentMetricTag interface { // Name returns a string func (obj *patternFlowGreChecksumPresentMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreChecksumPresentMetricTag object func (obj *patternFlowGreChecksumPresentMetricTag) SetName(value string) PatternFlowGreChecksumPresentMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -231708,7 +231863,7 @@ func (obj *patternFlowGreChecksumPresentMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGreChecksumPresentMetricTag") } @@ -232342,14 +232497,15 @@ type PatternFlowGreReserved0MetricTag interface { // Name returns a string func (obj *patternFlowGreReserved0MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreReserved0MetricTag object func (obj *patternFlowGreReserved0MetricTag) SetName(value string) PatternFlowGreReserved0MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -232403,7 +232559,7 @@ func (obj *patternFlowGreReserved0MetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGreReserved0MetricTag") } @@ -233037,14 +233193,15 @@ type PatternFlowGreVersionMetricTag interface { // Name returns a string func (obj *patternFlowGreVersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreVersionMetricTag object func (obj *patternFlowGreVersionMetricTag) SetName(value string) PatternFlowGreVersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -233098,7 +233255,7 @@ func (obj *patternFlowGreVersionMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGreVersionMetricTag") } @@ -233732,14 +233889,15 @@ type PatternFlowGreProtocolMetricTag interface { // Name returns a string func (obj *patternFlowGreProtocolMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreProtocolMetricTag object func (obj *patternFlowGreProtocolMetricTag) SetName(value string) PatternFlowGreProtocolMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -233793,7 +233951,7 @@ func (obj *patternFlowGreProtocolMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGreProtocolMetricTag") } @@ -234427,14 +234585,15 @@ type PatternFlowGreReserved1MetricTag interface { // Name returns a string func (obj *patternFlowGreReserved1MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreReserved1MetricTag object func (obj *patternFlowGreReserved1MetricTag) SetName(value string) PatternFlowGreReserved1MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -234488,7 +234647,7 @@ func (obj *patternFlowGreReserved1MetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGreReserved1MetricTag") } @@ -235122,14 +235281,15 @@ type PatternFlowGtpv1VersionMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1VersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1VersionMetricTag object func (obj *patternFlowGtpv1VersionMetricTag) SetName(value string) PatternFlowGtpv1VersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -235183,7 +235343,7 @@ func (obj *patternFlowGtpv1VersionMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1VersionMetricTag") } @@ -235817,14 +235977,15 @@ type PatternFlowGtpv1ProtocolTypeMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1ProtocolTypeMetricTag object func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetName(value string) PatternFlowGtpv1ProtocolTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -235878,7 +236039,7 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1ProtocolTypeMetricTag") } @@ -236512,14 +236673,15 @@ type PatternFlowGtpv1ReservedMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1ReservedMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1ReservedMetricTag object func (obj *patternFlowGtpv1ReservedMetricTag) SetName(value string) PatternFlowGtpv1ReservedMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -236573,7 +236735,7 @@ func (obj *patternFlowGtpv1ReservedMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1ReservedMetricTag") } @@ -237207,14 +237369,15 @@ type PatternFlowGtpv1EFlagMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1EFlagMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1EFlagMetricTag object func (obj *patternFlowGtpv1EFlagMetricTag) SetName(value string) PatternFlowGtpv1EFlagMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -237268,7 +237431,7 @@ func (obj *patternFlowGtpv1EFlagMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1EFlagMetricTag") } @@ -237902,14 +238065,15 @@ type PatternFlowGtpv1SFlagMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1SFlagMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1SFlagMetricTag object func (obj *patternFlowGtpv1SFlagMetricTag) SetName(value string) PatternFlowGtpv1SFlagMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -237963,7 +238127,7 @@ func (obj *patternFlowGtpv1SFlagMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1SFlagMetricTag") } @@ -238597,14 +238761,15 @@ type PatternFlowGtpv1PnFlagMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1PnFlagMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1PnFlagMetricTag object func (obj *patternFlowGtpv1PnFlagMetricTag) SetName(value string) PatternFlowGtpv1PnFlagMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -238658,7 +238823,7 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1PnFlagMetricTag") } @@ -239292,14 +239457,15 @@ type PatternFlowGtpv1MessageTypeMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1MessageTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1MessageTypeMetricTag object func (obj *patternFlowGtpv1MessageTypeMetricTag) SetName(value string) PatternFlowGtpv1MessageTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -239353,7 +239519,7 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1MessageTypeMetricTag") } @@ -239987,14 +240153,15 @@ type PatternFlowGtpv1MessageLengthMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1MessageLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1MessageLengthMetricTag object func (obj *patternFlowGtpv1MessageLengthMetricTag) SetName(value string) PatternFlowGtpv1MessageLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -240048,7 +240215,7 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1MessageLengthMetricTag") } @@ -240652,14 +240819,15 @@ type PatternFlowGtpv1TeidMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1TeidMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1TeidMetricTag object func (obj *patternFlowGtpv1TeidMetricTag) SetName(value string) PatternFlowGtpv1TeidMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -240713,7 +240881,7 @@ func (obj *patternFlowGtpv1TeidMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1TeidMetricTag") } @@ -241347,14 +241515,15 @@ type PatternFlowGtpv1SquenceNumberMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1SquenceNumberMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1SquenceNumberMetricTag object func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetName(value string) PatternFlowGtpv1SquenceNumberMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -241408,7 +241577,7 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1SquenceNumberMetricTag") } @@ -242042,14 +242211,15 @@ type PatternFlowGtpv1NPduNumberMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1NPduNumberMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1NPduNumberMetricTag object func (obj *patternFlowGtpv1NPduNumberMetricTag) SetName(value string) PatternFlowGtpv1NPduNumberMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -242103,7 +242273,7 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1NPduNumberMetricTag") } @@ -242737,14 +242907,15 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag interface { // Name returns a string func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag object func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetName(value string) PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -242798,7 +242969,7 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) validateObj(vObj *v } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv1NextExtensionHeaderTypeMetricTag") } @@ -245181,14 +245352,15 @@ type PatternFlowGtpv2VersionMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2VersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2VersionMetricTag object func (obj *patternFlowGtpv2VersionMetricTag) SetName(value string) PatternFlowGtpv2VersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -245242,7 +245414,7 @@ func (obj *patternFlowGtpv2VersionMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2VersionMetricTag") } @@ -245876,14 +246048,15 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2PiggybackingFlagMetricTag object func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetName(value string) PatternFlowGtpv2PiggybackingFlagMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -245937,7 +246110,7 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2PiggybackingFlagMetricTag") } @@ -246571,14 +246744,15 @@ type PatternFlowGtpv2TeidFlagMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2TeidFlagMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2TeidFlagMetricTag object func (obj *patternFlowGtpv2TeidFlagMetricTag) SetName(value string) PatternFlowGtpv2TeidFlagMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -246632,7 +246806,7 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2TeidFlagMetricTag") } @@ -247266,14 +247440,15 @@ type PatternFlowGtpv2Spare1MetricTag interface { // Name returns a string func (obj *patternFlowGtpv2Spare1MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2Spare1MetricTag object func (obj *patternFlowGtpv2Spare1MetricTag) SetName(value string) PatternFlowGtpv2Spare1MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -247327,7 +247502,7 @@ func (obj *patternFlowGtpv2Spare1MetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2Spare1MetricTag") } @@ -247961,14 +248136,15 @@ type PatternFlowGtpv2MessageTypeMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2MessageTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2MessageTypeMetricTag object func (obj *patternFlowGtpv2MessageTypeMetricTag) SetName(value string) PatternFlowGtpv2MessageTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -248022,7 +248198,7 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2MessageTypeMetricTag") } @@ -248656,14 +248832,15 @@ type PatternFlowGtpv2MessageLengthMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2MessageLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2MessageLengthMetricTag object func (obj *patternFlowGtpv2MessageLengthMetricTag) SetName(value string) PatternFlowGtpv2MessageLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -248717,7 +248894,7 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2MessageLengthMetricTag") } @@ -249321,14 +249498,15 @@ type PatternFlowGtpv2TeidMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2TeidMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2TeidMetricTag object func (obj *patternFlowGtpv2TeidMetricTag) SetName(value string) PatternFlowGtpv2TeidMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -249382,7 +249560,7 @@ func (obj *patternFlowGtpv2TeidMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2TeidMetricTag") } @@ -250016,14 +250194,15 @@ type PatternFlowGtpv2SequenceNumberMetricTag interface { // Name returns a string func (obj *patternFlowGtpv2SequenceNumberMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2SequenceNumberMetricTag object func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetName(value string) PatternFlowGtpv2SequenceNumberMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -250077,7 +250256,7 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) validateObj(vObj *validation } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2SequenceNumberMetricTag") } @@ -250711,14 +250890,15 @@ type PatternFlowGtpv2Spare2MetricTag interface { // Name returns a string func (obj *patternFlowGtpv2Spare2MetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2Spare2MetricTag object func (obj *patternFlowGtpv2Spare2MetricTag) SetName(value string) PatternFlowGtpv2Spare2MetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -250772,7 +250952,7 @@ func (obj *patternFlowGtpv2Spare2MetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpv2Spare2MetricTag") } @@ -251406,14 +251586,15 @@ type PatternFlowArpHardwareTypeMetricTag interface { // Name returns a string func (obj *patternFlowArpHardwareTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpHardwareTypeMetricTag object func (obj *patternFlowArpHardwareTypeMetricTag) SetName(value string) PatternFlowArpHardwareTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -251467,7 +251648,7 @@ func (obj *patternFlowArpHardwareTypeMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpHardwareTypeMetricTag") } @@ -252101,14 +252282,15 @@ type PatternFlowArpProtocolTypeMetricTag interface { // Name returns a string func (obj *patternFlowArpProtocolTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpProtocolTypeMetricTag object func (obj *patternFlowArpProtocolTypeMetricTag) SetName(value string) PatternFlowArpProtocolTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -252162,7 +252344,7 @@ func (obj *patternFlowArpProtocolTypeMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpProtocolTypeMetricTag") } @@ -252796,14 +252978,15 @@ type PatternFlowArpHardwareLengthMetricTag interface { // Name returns a string func (obj *patternFlowArpHardwareLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpHardwareLengthMetricTag object func (obj *patternFlowArpHardwareLengthMetricTag) SetName(value string) PatternFlowArpHardwareLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -252857,7 +253040,7 @@ func (obj *patternFlowArpHardwareLengthMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpHardwareLengthMetricTag") } @@ -253491,14 +253674,15 @@ type PatternFlowArpProtocolLengthMetricTag interface { // Name returns a string func (obj *patternFlowArpProtocolLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpProtocolLengthMetricTag object func (obj *patternFlowArpProtocolLengthMetricTag) SetName(value string) PatternFlowArpProtocolLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -253552,7 +253736,7 @@ func (obj *patternFlowArpProtocolLengthMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpProtocolLengthMetricTag") } @@ -254186,14 +254370,15 @@ type PatternFlowArpOperationMetricTag interface { // Name returns a string func (obj *patternFlowArpOperationMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpOperationMetricTag object func (obj *patternFlowArpOperationMetricTag) SetName(value string) PatternFlowArpOperationMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -254247,7 +254432,7 @@ func (obj *patternFlowArpOperationMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpOperationMetricTag") } @@ -254869,14 +255054,15 @@ type PatternFlowArpSenderHardwareAddrMetricTag interface { // Name returns a string func (obj *patternFlowArpSenderHardwareAddrMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpSenderHardwareAddrMetricTag object func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetName(value string) PatternFlowArpSenderHardwareAddrMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -254930,7 +255116,7 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpSenderHardwareAddrMetricTag") } @@ -255552,14 +255738,15 @@ type PatternFlowArpSenderProtocolAddrMetricTag interface { // Name returns a string func (obj *patternFlowArpSenderProtocolAddrMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpSenderProtocolAddrMetricTag object func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetName(value string) PatternFlowArpSenderProtocolAddrMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -255613,7 +255800,7 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpSenderProtocolAddrMetricTag") } @@ -256235,14 +256422,15 @@ type PatternFlowArpTargetHardwareAddrMetricTag interface { // Name returns a string func (obj *patternFlowArpTargetHardwareAddrMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpTargetHardwareAddrMetricTag object func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetName(value string) PatternFlowArpTargetHardwareAddrMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -256296,7 +256484,7 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpTargetHardwareAddrMetricTag") } @@ -256918,14 +257106,15 @@ type PatternFlowArpTargetProtocolAddrMetricTag interface { // Name returns a string func (obj *patternFlowArpTargetProtocolAddrMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpTargetProtocolAddrMetricTag object func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetName(value string) PatternFlowArpTargetProtocolAddrMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -256979,7 +257168,7 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) validateObj(vObj *validati } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowArpTargetProtocolAddrMetricTag") } @@ -263005,14 +263194,15 @@ type PatternFlowPppAddressMetricTag interface { // Name returns a string func (obj *patternFlowPppAddressMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppAddressMetricTag object func (obj *patternFlowPppAddressMetricTag) SetName(value string) PatternFlowPppAddressMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -263066,7 +263256,7 @@ func (obj *patternFlowPppAddressMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPppAddressMetricTag") } @@ -263700,14 +263890,15 @@ type PatternFlowPppControlMetricTag interface { // Name returns a string func (obj *patternFlowPppControlMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppControlMetricTag object func (obj *patternFlowPppControlMetricTag) SetName(value string) PatternFlowPppControlMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -263761,7 +263952,7 @@ func (obj *patternFlowPppControlMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPppControlMetricTag") } @@ -264395,14 +264586,15 @@ type PatternFlowPppProtocolTypeMetricTag interface { // Name returns a string func (obj *patternFlowPppProtocolTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppProtocolTypeMetricTag object func (obj *patternFlowPppProtocolTypeMetricTag) SetName(value string) PatternFlowPppProtocolTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -264456,7 +264648,7 @@ func (obj *patternFlowPppProtocolTypeMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowPppProtocolTypeMetricTag") } @@ -265090,14 +265282,15 @@ type PatternFlowIgmpv1VersionMetricTag interface { // Name returns a string func (obj *patternFlowIgmpv1VersionMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1VersionMetricTag object func (obj *patternFlowIgmpv1VersionMetricTag) SetName(value string) PatternFlowIgmpv1VersionMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -265151,7 +265344,7 @@ func (obj *patternFlowIgmpv1VersionMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIgmpv1VersionMetricTag") } @@ -265785,14 +265978,15 @@ type PatternFlowIgmpv1TypeMetricTag interface { // Name returns a string func (obj *patternFlowIgmpv1TypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1TypeMetricTag object func (obj *patternFlowIgmpv1TypeMetricTag) SetName(value string) PatternFlowIgmpv1TypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -265846,7 +266040,7 @@ func (obj *patternFlowIgmpv1TypeMetricTag) validateObj(vObj *validation, set_def } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIgmpv1TypeMetricTag") } @@ -266480,14 +266674,15 @@ type PatternFlowIgmpv1UnusedMetricTag interface { // Name returns a string func (obj *patternFlowIgmpv1UnusedMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1UnusedMetricTag object func (obj *patternFlowIgmpv1UnusedMetricTag) SetName(value string) PatternFlowIgmpv1UnusedMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -266541,7 +266736,7 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIgmpv1UnusedMetricTag") } @@ -267163,14 +267358,15 @@ type PatternFlowIgmpv1GroupAddressMetricTag interface { // Name returns a string func (obj *patternFlowIgmpv1GroupAddressMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1GroupAddressMetricTag object func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetName(value string) PatternFlowIgmpv1GroupAddressMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -267224,7 +267420,7 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIgmpv1GroupAddressMetricTag") } @@ -267858,14 +268054,15 @@ type PatternFlowMplsLabelMetricTag interface { // Name returns a string func (obj *patternFlowMplsLabelMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsLabelMetricTag object func (obj *patternFlowMplsLabelMetricTag) SetName(value string) PatternFlowMplsLabelMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -267919,7 +268116,7 @@ func (obj *patternFlowMplsLabelMetricTag) validateObj(vObj *validation, set_defa } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowMplsLabelMetricTag") } @@ -268553,14 +268750,15 @@ type PatternFlowMplsTrafficClassMetricTag interface { // Name returns a string func (obj *patternFlowMplsTrafficClassMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsTrafficClassMetricTag object func (obj *patternFlowMplsTrafficClassMetricTag) SetName(value string) PatternFlowMplsTrafficClassMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -268614,7 +268812,7 @@ func (obj *patternFlowMplsTrafficClassMetricTag) validateObj(vObj *validation, s } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowMplsTrafficClassMetricTag") } @@ -269248,14 +269446,15 @@ type PatternFlowMplsBottomOfStackMetricTag interface { // Name returns a string func (obj *patternFlowMplsBottomOfStackMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsBottomOfStackMetricTag object func (obj *patternFlowMplsBottomOfStackMetricTag) SetName(value string) PatternFlowMplsBottomOfStackMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -269309,7 +269508,7 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowMplsBottomOfStackMetricTag") } @@ -269943,14 +270142,15 @@ type PatternFlowMplsTimeToLiveMetricTag interface { // Name returns a string func (obj *patternFlowMplsTimeToLiveMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsTimeToLiveMetricTag object func (obj *patternFlowMplsTimeToLiveMetricTag) SetName(value string) PatternFlowMplsTimeToLiveMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -270004,7 +270204,7 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowMplsTimeToLiveMetricTag") } @@ -277407,14 +277607,15 @@ func (obj *bgpSrteV4TunnelTlvBgpSrteSegmentListIter) appendHolderSlice(item BgpS // Name returns a string func (obj *bgpSrteV4TunnelTlv) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteV4TunnelTlv object func (obj *bgpSrteV4TunnelTlv) SetName(value string) BgpSrteV4TunnelTlv { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -277495,7 +277696,7 @@ func (obj *bgpSrteV4TunnelTlv) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteV4TunnelTlv") } } @@ -278107,14 +278308,15 @@ func (obj *bgpSrteV6TunnelTlvBgpSrteSegmentListIter) appendHolderSlice(item BgpS // Name returns a string func (obj *bgpSrteV6TunnelTlv) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteV6TunnelTlv object func (obj *bgpSrteV6TunnelTlv) SetName(value string) BgpSrteV6TunnelTlv { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -278195,7 +278397,7 @@ func (obj *bgpSrteV6TunnelTlv) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteV6TunnelTlv") } } @@ -280721,14 +280923,15 @@ type PatternFlowIpv4PriorityRawMetricTag interface { // Name returns a string func (obj *patternFlowIpv4PriorityRawMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4PriorityRawMetricTag object func (obj *patternFlowIpv4PriorityRawMetricTag) SetName(value string) PatternFlowIpv4PriorityRawMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -280782,7 +280985,7 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4PriorityRawMetricTag") } @@ -286080,14 +286283,15 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag interface { // Name returns a string func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionExtensionLengthMetricTag object func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetName(value string) PatternFlowGtpExtensionExtensionLengthMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -286141,7 +286345,7 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) validateObj(vObj *va } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpExtensionExtensionLengthMetricTag") } @@ -286775,14 +286979,15 @@ type PatternFlowGtpExtensionContentsMetricTag interface { // Name returns a string func (obj *patternFlowGtpExtensionContentsMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionContentsMetricTag object func (obj *patternFlowGtpExtensionContentsMetricTag) SetName(value string) PatternFlowGtpExtensionContentsMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -286836,7 +287041,7 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) validateObj(vObj *validatio } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpExtensionContentsMetricTag") } @@ -287470,14 +287675,15 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag interface { // Name returns a string func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionNextExtensionHeaderMetricTag object func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetName(value string) PatternFlowGtpExtensionNextExtensionHeaderMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -287531,7 +287737,7 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) validateObj(vObj } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowGtpExtensionNextExtensionHeaderMetricTag") } @@ -288165,14 +288371,15 @@ type PatternFlowIcmpEchoTypeMetricTag interface { // Name returns a string func (obj *patternFlowIcmpEchoTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoTypeMetricTag object func (obj *patternFlowIcmpEchoTypeMetricTag) SetName(value string) PatternFlowIcmpEchoTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -288226,7 +288433,7 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpEchoTypeMetricTag") } @@ -288860,14 +289067,15 @@ type PatternFlowIcmpEchoCodeMetricTag interface { // Name returns a string func (obj *patternFlowIcmpEchoCodeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoCodeMetricTag object func (obj *patternFlowIcmpEchoCodeMetricTag) SetName(value string) PatternFlowIcmpEchoCodeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -288921,7 +289129,7 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpEchoCodeMetricTag") } @@ -289555,14 +289763,15 @@ type PatternFlowIcmpEchoIdentifierMetricTag interface { // Name returns a string func (obj *patternFlowIcmpEchoIdentifierMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoIdentifierMetricTag object func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetName(value string) PatternFlowIcmpEchoIdentifierMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -289616,7 +289825,7 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpEchoIdentifierMetricTag") } @@ -290250,14 +290459,15 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag interface { // Name returns a string func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoSequenceNumberMetricTag object func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetName(value string) PatternFlowIcmpEchoSequenceNumberMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -290311,7 +290521,7 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) validateObj(vObj *validat } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpEchoSequenceNumberMetricTag") } @@ -290945,14 +291155,15 @@ type PatternFlowIcmpv6EchoTypeMetricTag interface { // Name returns a string func (obj *patternFlowIcmpv6EchoTypeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoTypeMetricTag object func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetName(value string) PatternFlowIcmpv6EchoTypeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -291006,7 +291217,7 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpv6EchoTypeMetricTag") } @@ -291640,14 +291851,15 @@ type PatternFlowIcmpv6EchoCodeMetricTag interface { // Name returns a string func (obj *patternFlowIcmpv6EchoCodeMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoCodeMetricTag object func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetName(value string) PatternFlowIcmpv6EchoCodeMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -291701,7 +291913,7 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) validateObj(vObj *validation, set } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpv6EchoCodeMetricTag") } @@ -292335,14 +292547,15 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag interface { // Name returns a string func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoIdentifierMetricTag object func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetName(value string) PatternFlowIcmpv6EchoIdentifierMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -292396,7 +292609,7 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) validateObj(vObj *validatio } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpv6EchoIdentifierMetricTag") } @@ -293030,14 +293243,15 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag interface { // Name returns a string func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoSequenceNumberMetricTag object func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetName(value string) PatternFlowIcmpv6EchoSequenceNumberMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -293091,7 +293305,7 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) validateObj(vObj *valid } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIcmpv6EchoSequenceNumberMetricTag") } @@ -293372,7 +293586,8 @@ type ActionResponseProtocolIpv4PingResponse interface { // SrcName returns a string func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { - return obj.obj.SrcName + return *obj.obj.SrcName + } // Name of source IPv4 interface used for ping. @@ -293386,7 +293601,7 @@ func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { // SetSrcName sets the string value in the ActionResponseProtocolIpv4PingResponse object func (obj *actionResponseProtocolIpv4PingResponse) SetSrcName(value string) ActionResponseProtocolIpv4PingResponse { - obj.obj.SrcName = value + obj.obj.SrcName = &value return obj } @@ -293394,14 +293609,15 @@ func (obj *actionResponseProtocolIpv4PingResponse) SetSrcName(value string) Acti // DstIp returns a string func (obj *actionResponseProtocolIpv4PingResponse) DstIp() string { - return obj.obj.DstIp + return *obj.obj.DstIp + } // Destination IPv4 address used for ping. // SetDstIp sets the string value in the ActionResponseProtocolIpv4PingResponse object func (obj *actionResponseProtocolIpv4PingResponse) SetDstIp(value string) ActionResponseProtocolIpv4PingResponse { - obj.obj.DstIp = value + obj.obj.DstIp = &value return obj } @@ -293427,7 +293643,8 @@ func (obj *actionResponseProtocolIpv4PingResponse) SetResult(value ActionRespons "%s is not a valid choice on ActionResponseProtocolIpv4PingResponseResultEnum", string(value))) return obj } - obj.obj.Result = otg.ActionResponseProtocolIpv4PingResponse_Result_Enum(intValue) + enumValue := otg.ActionResponseProtocolIpv4PingResponse_Result_Enum(intValue) + obj.obj.Result = &enumValue return obj } @@ -293438,15 +293655,15 @@ func (obj *actionResponseProtocolIpv4PingResponse) validateObj(vObj *validation, } // SrcName is required - if obj.obj.SrcName == "" { + if obj.obj.SrcName == nil { vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv4PingResponse") } // DstIp is required - if obj.obj.DstIp == "" { + if obj.obj.DstIp == nil { vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv4PingResponse") } - if obj.obj.DstIp != "" { + if obj.obj.DstIp != nil { err := obj.validateIpv4(obj.DstIp()) if err != nil { @@ -293456,7 +293673,7 @@ func (obj *actionResponseProtocolIpv4PingResponse) validateObj(vObj *validation, } // Result is required - if obj.obj.Result.Number() == 0 { + if obj.obj.Result == nil { vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv4PingResponse") } } @@ -293710,7 +293927,8 @@ type ActionResponseProtocolIpv6PingResponse interface { // SrcName returns a string func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { - return obj.obj.SrcName + return *obj.obj.SrcName + } // Name of source IPv6 interface used for ping. @@ -293724,7 +293942,7 @@ func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { // SetSrcName sets the string value in the ActionResponseProtocolIpv6PingResponse object func (obj *actionResponseProtocolIpv6PingResponse) SetSrcName(value string) ActionResponseProtocolIpv6PingResponse { - obj.obj.SrcName = value + obj.obj.SrcName = &value return obj } @@ -293732,14 +293950,15 @@ func (obj *actionResponseProtocolIpv6PingResponse) SetSrcName(value string) Acti // DstIp returns a string func (obj *actionResponseProtocolIpv6PingResponse) DstIp() string { - return obj.obj.DstIp + return *obj.obj.DstIp + } // Destination IPv6 address used for ping. // SetDstIp sets the string value in the ActionResponseProtocolIpv6PingResponse object func (obj *actionResponseProtocolIpv6PingResponse) SetDstIp(value string) ActionResponseProtocolIpv6PingResponse { - obj.obj.DstIp = value + obj.obj.DstIp = &value return obj } @@ -293765,7 +293984,8 @@ func (obj *actionResponseProtocolIpv6PingResponse) SetResult(value ActionRespons "%s is not a valid choice on ActionResponseProtocolIpv6PingResponseResultEnum", string(value))) return obj } - obj.obj.Result = otg.ActionResponseProtocolIpv6PingResponse_Result_Enum(intValue) + enumValue := otg.ActionResponseProtocolIpv6PingResponse_Result_Enum(intValue) + obj.obj.Result = &enumValue return obj } @@ -293776,15 +293996,15 @@ func (obj *actionResponseProtocolIpv6PingResponse) validateObj(vObj *validation, } // SrcName is required - if obj.obj.SrcName == "" { + if obj.obj.SrcName == nil { vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv6PingResponse") } // DstIp is required - if obj.obj.DstIp == "" { + if obj.obj.DstIp == nil { vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv6PingResponse") } - if obj.obj.DstIp != "" { + if obj.obj.DstIp != nil { err := obj.validateIpv6(obj.DstIp()) if err != nil { @@ -293794,7 +294014,7 @@ func (obj *actionResponseProtocolIpv6PingResponse) validateObj(vObj *validation, } // Result is required - if obj.obj.Result.Number() == 0 { + if obj.obj.Result == nil { vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv6PingResponse") } } @@ -301772,14 +301992,15 @@ func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteS // Name returns a string func (obj *bgpSrteSegmentList) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteSegmentList object func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -301825,7 +302046,7 @@ func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") } } @@ -303754,14 +303975,15 @@ type PatternFlowIpv4TosPrecedenceMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -303815,7 +304037,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") } @@ -304449,14 +304671,15 @@ type PatternFlowIpv4TosDelayMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -304510,7 +304733,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_d } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") } @@ -305144,14 +305367,15 @@ type PatternFlowIpv4TosThroughputMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -305205,7 +305429,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") } @@ -305839,14 +306063,15 @@ type PatternFlowIpv4TosReliabilityMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -305900,7 +306125,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") } @@ -306534,14 +306759,15 @@ type PatternFlowIpv4TosMonetaryMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -306595,7 +306821,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, se } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") } @@ -307229,14 +307455,15 @@ type PatternFlowIpv4TosUnusedMetricTag interface { // Name returns a string func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -307290,7 +307517,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_ } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") } @@ -307924,14 +308151,15 @@ type PatternFlowIpv4DscpPhbMetricTag interface { // Name returns a string func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -307985,7 +308213,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") } @@ -308619,14 +308847,15 @@ type PatternFlowIpv4DscpEcnMetricTag interface { // Name returns a string func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -308680,7 +308909,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_de } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") } @@ -313540,7 +313769,8 @@ func (obj *bgpSrteSegment) SetSegmentType(value BgpSrteSegmentSegmentTypeEnum) B "%s is not a valid choice on BgpSrteSegmentSegmentTypeEnum", string(value))) return obj } - obj.obj.SegmentType = otg.BgpSrteSegment_SegmentType_Enum(intValue) + enumValue := otg.BgpSrteSegment_SegmentType_Enum(intValue) + obj.obj.SegmentType = &enumValue return obj } @@ -313857,14 +314087,15 @@ func (obj *bgpSrteSegment) SetTypeK(value BgpSrteSegmentKTypeSubTlv) BgpSrteSegm // Name returns a string func (obj *bgpSrteSegment) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpSrteSegment object func (obj *bgpSrteSegment) SetName(value string) BgpSrteSegment { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -313896,7 +314127,7 @@ func (obj *bgpSrteSegment) validateObj(vObj *validation, set_default bool) { } // SegmentType is required - if obj.obj.SegmentType.Number() == 0 { + if obj.obj.SegmentType == nil { vObj.validationErrors = append(vObj.validationErrors, "SegmentType is required field on interface BgpSrteSegment") } @@ -313956,7 +314187,7 @@ func (obj *bgpSrteSegment) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegment") } } @@ -315075,14 +315306,15 @@ func (obj *bgpCMacIpRange) SetAsPath(value BgpAsPath) BgpCMacIpRange { // Name returns a string func (obj *bgpCMacIpRange) Name() string { - return obj.obj.Name + return *obj.obj.Name + } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // SetName sets the string value in the BgpCMacIpRange object func (obj *bgpCMacIpRange) SetName(value string) BgpCMacIpRange { - obj.obj.Name = value + obj.obj.Name = &value return obj } @@ -315165,7 +315397,7 @@ func (obj *bgpCMacIpRange) validateObj(vObj *validation, set_default bool) { } // Name is required - if obj.obj.Name == "" { + if obj.obj.Name == nil { vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpCMacIpRange") } } @@ -315870,14 +316102,15 @@ func (obj *bgpSrteSegmentBTypeSubTlv) SetFlags(value string) BgpSrteSegmentBType // Srv6Sid returns a string func (obj *bgpSrteSegmentBTypeSubTlv) Srv6Sid() string { - return obj.obj.Srv6Sid + return *obj.obj.Srv6Sid + } // SRv6 SID. // SetSrv6Sid sets the string value in the BgpSrteSegmentBTypeSubTlv object func (obj *bgpSrteSegmentBTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentBTypeSubTlv { - obj.obj.Srv6Sid = value + obj.obj.Srv6Sid = &value return obj } @@ -315924,10 +316157,10 @@ func (obj *bgpSrteSegmentBTypeSubTlv) validateObj(vObj *validation, set_default } // Srv6Sid is required - if obj.obj.Srv6Sid == "" { + if obj.obj.Srv6Sid == nil { vObj.validationErrors = append(vObj.validationErrors, "Srv6Sid is required field on interface BgpSrteSegmentBTypeSubTlv") } - if obj.obj.Srv6Sid != "" { + if obj.obj.Srv6Sid != nil { err := obj.validateIpv6(obj.Srv6Sid()) if err != nil { @@ -316250,14 +316483,15 @@ func (obj *bgpSrteSegmentCTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmen // Ipv4NodeAddress returns a string func (obj *bgpSrteSegmentCTypeSubTlv) Ipv4NodeAddress() string { - return obj.obj.Ipv4NodeAddress + return *obj.obj.Ipv4NodeAddress + } // IPv4 address representing a node. // SetIpv4NodeAddress sets the string value in the BgpSrteSegmentCTypeSubTlv object func (obj *bgpSrteSegmentCTypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentCTypeSubTlv { - obj.obj.Ipv4NodeAddress = value + obj.obj.Ipv4NodeAddress = &value return obj } @@ -316314,10 +316548,10 @@ func (obj *bgpSrteSegmentCTypeSubTlv) validateObj(vObj *validation, set_default } // Ipv4NodeAddress is required - if obj.obj.Ipv4NodeAddress == "" { + if obj.obj.Ipv4NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentCTypeSubTlv") } - if obj.obj.Ipv4NodeAddress != "" { + if obj.obj.Ipv4NodeAddress != nil { err := obj.validateIpv4(obj.Ipv4NodeAddress()) if err != nil { @@ -316643,14 +316877,15 @@ func (obj *bgpSrteSegmentDTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmen // Ipv6NodeAddress returns a string func (obj *bgpSrteSegmentDTypeSubTlv) Ipv6NodeAddress() string { - return obj.obj.Ipv6NodeAddress + return *obj.obj.Ipv6NodeAddress + } // IPv6 address representing a node. // SetIpv6NodeAddress sets the string value in the BgpSrteSegmentDTypeSubTlv object func (obj *bgpSrteSegmentDTypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentDTypeSubTlv { - obj.obj.Ipv6NodeAddress = value + obj.obj.Ipv6NodeAddress = &value return obj } @@ -316707,10 +316942,10 @@ func (obj *bgpSrteSegmentDTypeSubTlv) validateObj(vObj *validation, set_default } // Ipv6NodeAddress is required - if obj.obj.Ipv6NodeAddress == "" { + if obj.obj.Ipv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentDTypeSubTlv") } - if obj.obj.Ipv6NodeAddress != "" { + if obj.obj.Ipv6NodeAddress != nil { err := obj.validateIpv6(obj.Ipv6NodeAddress()) if err != nil { @@ -317036,14 +317271,15 @@ func (obj *bgpSrteSegmentETypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteS // Ipv4NodeAddress returns a string func (obj *bgpSrteSegmentETypeSubTlv) Ipv4NodeAddress() string { - return obj.obj.Ipv4NodeAddress + return *obj.obj.Ipv4NodeAddress + } // IPv4 address representing a node. // SetIpv4NodeAddress sets the string value in the BgpSrteSegmentETypeSubTlv object func (obj *bgpSrteSegmentETypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentETypeSubTlv { - obj.obj.Ipv4NodeAddress = value + obj.obj.Ipv4NodeAddress = &value return obj } @@ -317090,10 +317326,10 @@ func (obj *bgpSrteSegmentETypeSubTlv) validateObj(vObj *validation, set_default } // Ipv4NodeAddress is required - if obj.obj.Ipv4NodeAddress == "" { + if obj.obj.Ipv4NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentETypeSubTlv") } - if obj.obj.Ipv4NodeAddress != "" { + if obj.obj.Ipv4NodeAddress != nil { err := obj.validateIpv4(obj.Ipv4NodeAddress()) if err != nil { @@ -317395,14 +317631,15 @@ func (obj *bgpSrteSegmentFTypeSubTlv) SetFlags(value string) BgpSrteSegmentFType // LocalIpv4Address returns a string func (obj *bgpSrteSegmentFTypeSubTlv) LocalIpv4Address() string { - return obj.obj.LocalIpv4Address + return *obj.obj.LocalIpv4Address + } // Local IPv4 Address. // SetLocalIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object func (obj *bgpSrteSegmentFTypeSubTlv) SetLocalIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { - obj.obj.LocalIpv4Address = value + obj.obj.LocalIpv4Address = &value return obj } @@ -317410,14 +317647,15 @@ func (obj *bgpSrteSegmentFTypeSubTlv) SetLocalIpv4Address(value string) BgpSrteS // RemoteIpv4Address returns a string func (obj *bgpSrteSegmentFTypeSubTlv) RemoteIpv4Address() string { - return obj.obj.RemoteIpv4Address + return *obj.obj.RemoteIpv4Address + } // Remote IPv4 Address. // SetRemoteIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object func (obj *bgpSrteSegmentFTypeSubTlv) SetRemoteIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { - obj.obj.RemoteIpv4Address = value + obj.obj.RemoteIpv4Address = &value return obj } @@ -317464,10 +317702,10 @@ func (obj *bgpSrteSegmentFTypeSubTlv) validateObj(vObj *validation, set_default } // LocalIpv4Address is required - if obj.obj.LocalIpv4Address == "" { + if obj.obj.LocalIpv4Address == nil { vObj.validationErrors = append(vObj.validationErrors, "LocalIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") } - if obj.obj.LocalIpv4Address != "" { + if obj.obj.LocalIpv4Address != nil { err := obj.validateIpv4(obj.LocalIpv4Address()) if err != nil { @@ -317477,10 +317715,10 @@ func (obj *bgpSrteSegmentFTypeSubTlv) validateObj(vObj *validation, set_default } // RemoteIpv4Address is required - if obj.obj.RemoteIpv4Address == "" { + if obj.obj.RemoteIpv4Address == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") } - if obj.obj.RemoteIpv4Address != "" { + if obj.obj.RemoteIpv4Address != nil { err := obj.validateIpv4(obj.RemoteIpv4Address()) if err != nil { @@ -317813,14 +318051,15 @@ func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteS // LocalIpv6NodeAddress returns a string func (obj *bgpSrteSegmentGTypeSubTlv) LocalIpv6NodeAddress() string { - return obj.obj.LocalIpv6NodeAddress + return *obj.obj.LocalIpv6NodeAddress + } // IPv6 address representing a node. // SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { - obj.obj.LocalIpv6NodeAddress = value + obj.obj.LocalIpv6NodeAddress = &value return obj } @@ -317850,14 +318089,15 @@ func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrte // RemoteIpv6NodeAddress returns a string func (obj *bgpSrteSegmentGTypeSubTlv) RemoteIpv6NodeAddress() string { - return obj.obj.RemoteIpv6NodeAddress + return *obj.obj.RemoteIpv6NodeAddress + } // IPv6 address representing a node. // SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { - obj.obj.RemoteIpv6NodeAddress = value + obj.obj.RemoteIpv6NodeAddress = &value return obj } @@ -317904,10 +318144,10 @@ func (obj *bgpSrteSegmentGTypeSubTlv) validateObj(vObj *validation, set_default } // LocalIpv6NodeAddress is required - if obj.obj.LocalIpv6NodeAddress == "" { + if obj.obj.LocalIpv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") } - if obj.obj.LocalIpv6NodeAddress != "" { + if obj.obj.LocalIpv6NodeAddress != nil { err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) if err != nil { @@ -317917,10 +318157,10 @@ func (obj *bgpSrteSegmentGTypeSubTlv) validateObj(vObj *validation, set_default } // RemoteIpv6NodeAddress is required - if obj.obj.RemoteIpv6NodeAddress == "" { + if obj.obj.RemoteIpv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") } - if obj.obj.RemoteIpv6NodeAddress != "" { + if obj.obj.RemoteIpv6NodeAddress != nil { err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) if err != nil { @@ -318225,14 +318465,15 @@ func (obj *bgpSrteSegmentHTypeSubTlv) SetFlags(value string) BgpSrteSegmentHType // LocalIpv6Address returns a string func (obj *bgpSrteSegmentHTypeSubTlv) LocalIpv6Address() string { - return obj.obj.LocalIpv6Address + return *obj.obj.LocalIpv6Address + } // Local IPv6 Address. // SetLocalIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object func (obj *bgpSrteSegmentHTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { - obj.obj.LocalIpv6Address = value + obj.obj.LocalIpv6Address = &value return obj } @@ -318240,14 +318481,15 @@ func (obj *bgpSrteSegmentHTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteS // RemoteIpv6Address returns a string func (obj *bgpSrteSegmentHTypeSubTlv) RemoteIpv6Address() string { - return obj.obj.RemoteIpv6Address + return *obj.obj.RemoteIpv6Address + } // Remote IPv6 Address. // SetRemoteIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object func (obj *bgpSrteSegmentHTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { - obj.obj.RemoteIpv6Address = value + obj.obj.RemoteIpv6Address = &value return obj } @@ -318294,10 +318536,10 @@ func (obj *bgpSrteSegmentHTypeSubTlv) validateObj(vObj *validation, set_default } // LocalIpv6Address is required - if obj.obj.LocalIpv6Address == "" { + if obj.obj.LocalIpv6Address == nil { vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") } - if obj.obj.LocalIpv6Address != "" { + if obj.obj.LocalIpv6Address != nil { err := obj.validateIpv6(obj.LocalIpv6Address()) if err != nil { @@ -318307,10 +318549,10 @@ func (obj *bgpSrteSegmentHTypeSubTlv) validateObj(vObj *validation, set_default } // RemoteIpv6Address is required - if obj.obj.RemoteIpv6Address == "" { + if obj.obj.RemoteIpv6Address == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") } - if obj.obj.RemoteIpv6Address != "" { + if obj.obj.RemoteIpv6Address != nil { err := obj.validateIpv6(obj.RemoteIpv6Address()) if err != nil { @@ -318611,14 +318853,15 @@ func (obj *bgpSrteSegmentITypeSubTlv) SetFlags(value string) BgpSrteSegmentIType // Ipv6NodeAddress returns a string func (obj *bgpSrteSegmentITypeSubTlv) Ipv6NodeAddress() string { - return obj.obj.Ipv6NodeAddress + return *obj.obj.Ipv6NodeAddress + } // IPv6 address representing a node. // SetIpv6NodeAddress sets the string value in the BgpSrteSegmentITypeSubTlv object func (obj *bgpSrteSegmentITypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentITypeSubTlv { - obj.obj.Ipv6NodeAddress = value + obj.obj.Ipv6NodeAddress = &value return obj } @@ -318687,10 +318930,10 @@ func (obj *bgpSrteSegmentITypeSubTlv) validateObj(vObj *validation, set_default } // Ipv6NodeAddress is required - if obj.obj.Ipv6NodeAddress == "" { + if obj.obj.Ipv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentITypeSubTlv") } - if obj.obj.Ipv6NodeAddress != "" { + if obj.obj.Ipv6NodeAddress != nil { err := obj.validateIpv6(obj.Ipv6NodeAddress()) if err != nil { @@ -319066,14 +319309,15 @@ func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteS // LocalIpv6NodeAddress returns a string func (obj *bgpSrteSegmentJTypeSubTlv) LocalIpv6NodeAddress() string { - return obj.obj.LocalIpv6NodeAddress + return *obj.obj.LocalIpv6NodeAddress + } // IPv6 address representing a node. // SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { - obj.obj.LocalIpv6NodeAddress = value + obj.obj.LocalIpv6NodeAddress = &value return obj } @@ -319103,14 +319347,15 @@ func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrte // RemoteIpv6NodeAddress returns a string func (obj *bgpSrteSegmentJTypeSubTlv) RemoteIpv6NodeAddress() string { - return obj.obj.RemoteIpv6NodeAddress + return *obj.obj.RemoteIpv6NodeAddress + } // IPv6 address representing a node. // SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { - obj.obj.RemoteIpv6NodeAddress = value + obj.obj.RemoteIpv6NodeAddress = &value return obj } @@ -319179,10 +319424,10 @@ func (obj *bgpSrteSegmentJTypeSubTlv) validateObj(vObj *validation, set_default } // LocalIpv6NodeAddress is required - if obj.obj.LocalIpv6NodeAddress == "" { + if obj.obj.LocalIpv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") } - if obj.obj.LocalIpv6NodeAddress != "" { + if obj.obj.LocalIpv6NodeAddress != nil { err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) if err != nil { @@ -319192,10 +319437,10 @@ func (obj *bgpSrteSegmentJTypeSubTlv) validateObj(vObj *validation, set_default } // RemoteIpv6NodeAddress is required - if obj.obj.RemoteIpv6NodeAddress == "" { + if obj.obj.RemoteIpv6NodeAddress == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") } - if obj.obj.RemoteIpv6NodeAddress != "" { + if obj.obj.RemoteIpv6NodeAddress != nil { err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) if err != nil { @@ -319546,14 +319791,15 @@ func (obj *bgpSrteSegmentKTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmen // LocalIpv6Address returns a string func (obj *bgpSrteSegmentKTypeSubTlv) LocalIpv6Address() string { - return obj.obj.LocalIpv6Address + return *obj.obj.LocalIpv6Address + } // IPv6 address representing a node. // SetLocalIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object func (obj *bgpSrteSegmentKTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { - obj.obj.LocalIpv6Address = value + obj.obj.LocalIpv6Address = &value return obj } @@ -319561,14 +319807,15 @@ func (obj *bgpSrteSegmentKTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteS // RemoteIpv6Address returns a string func (obj *bgpSrteSegmentKTypeSubTlv) RemoteIpv6Address() string { - return obj.obj.RemoteIpv6Address + return *obj.obj.RemoteIpv6Address + } // IPv6 address representing a node. // SetRemoteIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object func (obj *bgpSrteSegmentKTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { - obj.obj.RemoteIpv6Address = value + obj.obj.RemoteIpv6Address = &value return obj } @@ -319637,10 +319884,10 @@ func (obj *bgpSrteSegmentKTypeSubTlv) validateObj(vObj *validation, set_default } // LocalIpv6Address is required - if obj.obj.LocalIpv6Address == "" { + if obj.obj.LocalIpv6Address == nil { vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") } - if obj.obj.LocalIpv6Address != "" { + if obj.obj.LocalIpv6Address != nil { err := obj.validateIpv6(obj.LocalIpv6Address()) if err != nil { @@ -319650,10 +319897,10 @@ func (obj *bgpSrteSegmentKTypeSubTlv) validateObj(vObj *validation, set_default } // RemoteIpv6Address is required - if obj.obj.RemoteIpv6Address == "" { + if obj.obj.RemoteIpv6Address == nil { vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") } - if obj.obj.RemoteIpv6Address != "" { + if obj.obj.RemoteIpv6Address != nil { err := obj.validateIpv6(obj.RemoteIpv6Address()) if err != nil { @@ -319933,14 +320180,15 @@ type MACRouteAddress interface { // Address returns a string func (obj *mACRouteAddress) Address() string { - return obj.obj.Address + return *obj.obj.Address + } // The starting address of the MAC Range. // SetAddress sets the string value in the MACRouteAddress object func (obj *mACRouteAddress) SetAddress(value string) MACRouteAddress { - obj.obj.Address = value + obj.obj.Address = &value return obj } @@ -320016,10 +320264,10 @@ func (obj *mACRouteAddress) validateObj(vObj *validation, set_default bool) { } // Address is required - if obj.obj.Address == "" { + if obj.obj.Address == nil { vObj.validationErrors = append(vObj.validationErrors, "Address is required field on interface MACRouteAddress") } - if obj.obj.Address != "" { + if obj.obj.Address != nil { err := obj.validateMac(obj.Address()) if err != nil { diff --git a/gosnappi/httpapi/controllers/capabilities_controller.go b/gosnappi/httpapi/controllers/capabilities_controller.go index 3abaa95e..973945a3 100644 --- a/gosnappi/httpapi/controllers/capabilities_controller.go +++ b/gosnappi/httpapi/controllers/capabilities_controller.go @@ -60,7 +60,7 @@ func (ctrl *capabilitiesController) responseGetVersionError(w http.ResponseWrite result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) diff --git a/gosnappi/httpapi/controllers/configuration_controller.go b/gosnappi/httpapi/controllers/configuration_controller.go index f9652d65..b665f11a 100644 --- a/gosnappi/httpapi/controllers/configuration_controller.go +++ b/gosnappi/httpapi/controllers/configuration_controller.go @@ -86,7 +86,7 @@ func (ctrl *configurationController) responseSetConfigError(w http.ResponseWrite result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) @@ -135,7 +135,7 @@ func (ctrl *configurationController) responseGetConfigError(w http.ResponseWrite result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) @@ -204,7 +204,7 @@ func (ctrl *configurationController) responseUpdateConfigError(w http.ResponseWr result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) diff --git a/gosnappi/httpapi/controllers/control_controller.go b/gosnappi/httpapi/controllers/control_controller.go index c918f3ed..46367513 100644 --- a/gosnappi/httpapi/controllers/control_controller.go +++ b/gosnappi/httpapi/controllers/control_controller.go @@ -85,7 +85,7 @@ func (ctrl *controlController) responseSetControlStateError(w http.ResponseWrite result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) @@ -156,7 +156,7 @@ func (ctrl *controlController) responseSetControlActionError(w http.ResponseWrit result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) diff --git a/gosnappi/httpapi/controllers/monitor_controller.go b/gosnappi/httpapi/controllers/monitor_controller.go index d1929381..9c9eec89 100644 --- a/gosnappi/httpapi/controllers/monitor_controller.go +++ b/gosnappi/httpapi/controllers/monitor_controller.go @@ -82,7 +82,7 @@ func (ctrl *monitorController) responseGetMetricsError(w http.ResponseWriter, er result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) @@ -150,7 +150,7 @@ func (ctrl *monitorController) responseGetStatesError(w http.ResponseWriter, err result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) @@ -218,7 +218,7 @@ func (ctrl *monitorController) responseGetCaptureError(w http.ResponseWriter, er result = gosnappi.NewError() err := result.FromJson(rsp_err.Error()) if err != nil { - result.Msg().Code = statusCode + result.Msg().Code = &statusCode err = result.SetKind(errorKind) if err != nil { log.Print(err.Error()) diff --git a/gosnappi/mock_grpcserver.go b/gosnappi/mock_grpcserver.go index cbde093d..2c4cd38b 100644 --- a/gosnappi/mock_grpcserver.go +++ b/gosnappi/mock_grpcserver.go @@ -97,7 +97,7 @@ func getBgpPeerNames(cfg *otg.Config) []string { func getFlowNames(cfg *otg.Config) []string { names := []string{} for _, flow := range mockConfig.Flows { - names = append(names, flow.Name) + names = append(names, *flow.Name) } return names @@ -106,7 +106,7 @@ func getFlowNames(cfg *otg.Config) []string { func getPortNames(cfg *otg.Config) []string { names := []string{} for _, port := range mockConfig.Ports { - names = append(names, port.Name) + names = append(names, *port.Name) } return names @@ -119,7 +119,7 @@ func getRouteNames(cfg *otg.Config) []string { continue } for _, r := range d.Bgp.Ipv4Interfaces[0].Peers[0].GetV4Routes() { - names = append(names, r.Name) + names = append(names, *r.Name) } } return names @@ -129,7 +129,7 @@ func isFlowMetricsDisabled(cfg *otg.Config) []string { names := []string{} for _, flow := range cfg.Flows { if flow.Metrics == nil || !*flow.Metrics.Enable { - names = append(names, flow.Name) + names = append(names, *flow.Name) } } return names @@ -139,6 +139,7 @@ func (s *server) GetMetrics(ctx context.Context, req *otg.GetMetricsRequest) (*o var resp *otg.GetMetricsResponse var err error var tx uint64 = 100 + var errCode int32 = 13 metricsDisabledFlows := isFlowMetricsDisabled(mockConfig) if req.MetricsRequest.Flow != nil { f := &otg.FlowMetric{FramesTx: &tx} @@ -148,13 +149,13 @@ func (s *server) GetMetrics(ctx context.Context, req *otg.GetMetricsRequest) (*o if !res { resp = nil errObj := NewError() - errObj.Msg().Code = 13 + errObj.Msg().Code = &errCode errObj.Msg().Errors = []string{"requested flow is not available in configured flows"} err = errObj } else if len(metricsDisabledFlows) > 0 { resp = nil errObj := NewError() - errObj.Msg().Code = 13 + errObj.Msg().Code = &errCode errObj.Msg().Errors = []string{"metrics not enabled for all the flows"} err = errObj } else { @@ -175,7 +176,7 @@ func (s *server) GetMetrics(ctx context.Context, req *otg.GetMetricsRequest) (*o resp = nil resp = nil errObj := NewError() - errObj.Msg().Code = 13 + errObj.Msg().Code = &errCode errObj.Msg().Errors = []string{"requested port is not available in configured ports"} err = errObj } else { @@ -225,9 +226,9 @@ func (s *server) GetMetrics(ctx context.Context, req *otg.GetMetricsRequest) (*o } func (s *server) SetControlState(ctx context.Context, req *otg.SetControlStateRequest) (*otg.SetControlStateResponse, error) { - switch choice := req.ControlState.Choice; choice { + switch choice := *req.ControlState.Choice; choice { case otg.ControlState_Choice_port: - switch portChoice := req.ControlState.Port.Choice; portChoice { + switch portChoice := *req.ControlState.Port.Choice; portChoice { case otg.StatePort_Choice_link: return s.SetLinkState(ctx, req) case otg.StatePort_Choice_capture: @@ -236,7 +237,7 @@ func (s *server) SetControlState(ctx context.Context, req *otg.SetControlStateRe return nil, fmt.Errorf("unspecified choice") } case otg.ControlState_Choice_protocol: - switch protocolChoice := req.ControlState.Protocol.Choice; protocolChoice { + switch protocolChoice := *req.ControlState.Protocol.Choice; protocolChoice { case otg.StateProtocol_Choice_route: return s.SetRouteState(ctx, req) case otg.StateProtocol_Choice_unspecified: diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 54c62f66..9f227b44 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.12.5 +// Open Traffic Generator API 0.13.0 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -17092,9 +17092,9 @@ type Config struct { // The flows that will be configured on the traffic generator. Flows []*Flow `protobuf:"bytes,6,rep,name=flows,proto3" json:"flows,omitempty"` // Description missing in models - Events *Event `protobuf:"bytes,7,opt,name=events,proto3,oneof" json:"events,omitempty"` + Events *Event `protobuf:"bytes,7,opt,name=events,proto3" json:"events,omitempty"` // Description missing in models - Options *ConfigOptions `protobuf:"bytes,8,opt,name=options,proto3,oneof" json:"options,omitempty"` + Options *ConfigOptions `protobuf:"bytes,8,opt,name=options,proto3" json:"options,omitempty"` // LLDP protocol that will be configured on traffic generator. Lldp []*Lldp `protobuf:"bytes,9,rep,name=lldp,proto3" json:"lldp,omitempty"` } @@ -17201,9 +17201,9 @@ type ConfigOptions struct { unknownFields protoimpl.UnknownFields // Description missing in models - PortOptions *PortOptions `protobuf:"bytes,1,opt,name=port_options,json=portOptions,proto3,oneof" json:"port_options,omitempty"` + PortOptions *PortOptions `protobuf:"bytes,1,opt,name=port_options,json=portOptions,proto3" json:"port_options,omitempty"` // Description missing in models - ProtocolOptions *ProtocolOptions `protobuf:"bytes,2,opt,name=protocol_options,json=protocolOptions,proto3,oneof" json:"protocol_options,omitempty"` + ProtocolOptions *ProtocolOptions `protobuf:"bytes,2,opt,name=protocol_options,json=protocolOptions,proto3" json:"protocol_options,omitempty"` } func (x *ConfigOptions) Reset() { @@ -17272,7 +17272,7 @@ type Port struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Port) Reset() { @@ -17315,8 +17315,8 @@ func (x *Port) GetLocation() string { } func (x *Port) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -17382,7 +17382,7 @@ type Lag struct { // Description missing in models Ports []*LagPort `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"` // Description missing in models - Protocol *LagProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *LagProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // Specifies the mininum number of member interfaces that must be active for the aggregate // interface to be available. // If the aggregate interface is not available due to min-links criterion not being @@ -17393,7 +17393,7 @@ type Lag struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Lag) Reset() { @@ -17450,8 +17450,8 @@ func (x *Lag) GetMinLinks() uint32 { } func (x *Lag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -17471,9 +17471,9 @@ type LagPort struct { // - /components/schemas/Port/properties/name // // required = true - PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` + PortName *string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` // Description missing in models - Lacp *LagPortLacp `protobuf:"bytes,2,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Lacp *LagPortLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` // Description missing in models // required = true Ethernet *DeviceEthernetBase `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` @@ -17512,8 +17512,8 @@ func (*LagPort) Descriptor() ([]byte, []int) { } func (x *LagPort) GetPortName() string { - if x != nil { - return x.PortName + if x != nil && x.PortName != nil { + return *x.PortName } return "" } @@ -17542,9 +17542,9 @@ type LagProtocol struct { // default = Choice.Enum.lacp Choice *LagProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LagProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Lacp *LagProtocolLacp `protobuf:"bytes,2,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Lacp *LagProtocolLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` // Description missing in models - Static *LagProtocolStatic `protobuf:"bytes,3,opt,name=static,proto3,oneof" json:"static,omitempty"` + Static *LagProtocolStatic `protobuf:"bytes,3,opt,name=static,proto3" json:"static,omitempty"` } func (x *LagProtocol) Reset() { @@ -17822,7 +17822,7 @@ type DeviceEthernetBase struct { // Media Access Control address. // required = true - Mac string `protobuf:"bytes,1,opt,name=mac,proto3" json:"mac,omitempty"` + Mac *string `protobuf:"bytes,1,opt,name=mac,proto3,oneof" json:"mac,omitempty"` // Maximum Transmission Unit. // default = 1500 Mtu *uint32 `protobuf:"varint,2,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` @@ -17831,7 +17831,7 @@ type DeviceEthernetBase struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceEthernetBase) Reset() { @@ -17867,8 +17867,8 @@ func (*DeviceEthernetBase) Descriptor() ([]byte, []int) { } func (x *DeviceEthernetBase) GetMac() string { - if x != nil { - return x.Mac + if x != nil && x.Mac != nil { + return *x.Mac } return "" } @@ -17888,8 +17888,8 @@ func (x *DeviceEthernetBase) GetVlans() []*DeviceVlan { } func (x *DeviceEthernetBase) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -17901,7 +17901,7 @@ type DeviceEthernet struct { unknownFields protoimpl.UnknownFields // Device connection to physical, LAG or another device. - Connection *EthernetConnection `protobuf:"bytes,2,opt,name=connection,proto3,oneof" json:"connection,omitempty"` + Connection *EthernetConnection `protobuf:"bytes,2,opt,name=connection,proto3" json:"connection,omitempty"` // List of IPv4 addresses and their gateways. Ipv4Addresses []*DeviceIpv4 `protobuf:"bytes,3,rep,name=ipv4_addresses,json=ipv4Addresses,proto3" json:"ipv4_addresses,omitempty"` // List of global IPv6 addresses and their gateways. @@ -17909,7 +17909,7 @@ type DeviceEthernet struct { Ipv6Addresses []*DeviceIpv6 `protobuf:"bytes,4,rep,name=ipv6_addresses,json=ipv6Addresses,proto3" json:"ipv6_addresses,omitempty"` // Media Access Control address. // required = true - Mac string `protobuf:"bytes,5,opt,name=mac,proto3" json:"mac,omitempty"` + Mac *string `protobuf:"bytes,5,opt,name=mac,proto3,oneof" json:"mac,omitempty"` // Maximum Transmission Unit. // default = 1500 Mtu *uint32 `protobuf:"varint,6,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` @@ -17918,7 +17918,7 @@ type DeviceEthernet struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,8,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceEthernet) Reset() { @@ -17975,8 +17975,8 @@ func (x *DeviceEthernet) GetIpv6Addresses() []*DeviceIpv6 { } func (x *DeviceEthernet) GetMac() string { - if x != nil { - return x.Mac + if x != nil && x.Mac != nil { + return *x.Mac } return "" } @@ -17996,8 +17996,8 @@ func (x *DeviceEthernet) GetVlans() []*DeviceVlan { } func (x *DeviceEthernet) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18117,7 +18117,7 @@ type DeviceVlan struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceVlan) Reset() { @@ -18174,8 +18174,8 @@ func (x *DeviceVlan) GetId() uint32 { } func (x *DeviceVlan) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18188,19 +18188,19 @@ type DeviceIpv4 struct { // The IPv4 address of the gateway // required = true - Gateway string `protobuf:"bytes,1,opt,name=gateway,proto3" json:"gateway,omitempty"` + Gateway *string `protobuf:"bytes,1,opt,name=gateway,proto3,oneof" json:"gateway,omitempty"` // Description missing in models - GatewayMac *DeviceIpv4GatewayMAC `protobuf:"bytes,2,opt,name=gateway_mac,json=gatewayMac,proto3,oneof" json:"gateway_mac,omitempty"` + GatewayMac *DeviceIpv4GatewayMAC `protobuf:"bytes,2,opt,name=gateway_mac,json=gatewayMac,proto3" json:"gateway_mac,omitempty"` // The IPv4 address // required = true - Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` // The prefix of the IPv4 address. // default = 24 Prefix *uint32 `protobuf:"varint,4,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceIpv4) Reset() { @@ -18236,8 +18236,8 @@ func (*DeviceIpv4) Descriptor() ([]byte, []int) { } func (x *DeviceIpv4) GetGateway() string { - if x != nil { - return x.Gateway + if x != nil && x.Gateway != nil { + return *x.Gateway } return "" } @@ -18250,8 +18250,8 @@ func (x *DeviceIpv4) GetGatewayMac() *DeviceIpv4GatewayMAC { } func (x *DeviceIpv4) GetAddress() string { - if x != nil { - return x.Address + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -18264,8 +18264,8 @@ func (x *DeviceIpv4) GetPrefix() uint32 { } func (x *DeviceIpv4) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18286,14 +18286,14 @@ type DeviceIpv4Loopback struct { // - /components/schemas/Device.Ethernet/properties/name // // required = true - EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` + EthName *string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3,oneof" json:"eth_name,omitempty"` // The IPv4 Loopback address with prefix length of 32. // default = 0.0.0.0 Address *string `protobuf:"bytes,2,opt,name=address,proto3,oneof" json:"address,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceIpv4Loopback) Reset() { @@ -18329,8 +18329,8 @@ func (*DeviceIpv4Loopback) Descriptor() ([]byte, []int) { } func (x *DeviceIpv4Loopback) GetEthName() string { - if x != nil { - return x.EthName + if x != nil && x.EthName != nil { + return *x.EthName } return "" } @@ -18343,8 +18343,8 @@ func (x *DeviceIpv4Loopback) GetAddress() string { } func (x *DeviceIpv4Loopback) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18432,19 +18432,19 @@ type DeviceIpv6 struct { // The IPv6 gateway address. // required = true - Gateway string `protobuf:"bytes,1,opt,name=gateway,proto3" json:"gateway,omitempty"` + Gateway *string `protobuf:"bytes,1,opt,name=gateway,proto3,oneof" json:"gateway,omitempty"` // Description missing in models - GatewayMac *DeviceIpv6GatewayMAC `protobuf:"bytes,2,opt,name=gateway_mac,json=gatewayMac,proto3,oneof" json:"gateway_mac,omitempty"` + GatewayMac *DeviceIpv6GatewayMAC `protobuf:"bytes,2,opt,name=gateway_mac,json=gatewayMac,proto3" json:"gateway_mac,omitempty"` // The IPv6 address. // required = true - Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` // The network prefix. // default = 64 Prefix *uint32 `protobuf:"varint,4,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceIpv6) Reset() { @@ -18480,8 +18480,8 @@ func (*DeviceIpv6) Descriptor() ([]byte, []int) { } func (x *DeviceIpv6) GetGateway() string { - if x != nil { - return x.Gateway + if x != nil && x.Gateway != nil { + return *x.Gateway } return "" } @@ -18494,8 +18494,8 @@ func (x *DeviceIpv6) GetGatewayMac() *DeviceIpv6GatewayMAC { } func (x *DeviceIpv6) GetAddress() string { - if x != nil { - return x.Address + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -18508,8 +18508,8 @@ func (x *DeviceIpv6) GetPrefix() uint32 { } func (x *DeviceIpv6) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18530,14 +18530,14 @@ type DeviceIpv6Loopback struct { // - /components/schemas/Device.Ethernet/properties/name // // required = true - EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` + EthName *string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3,oneof" json:"eth_name,omitempty"` // The IPv6 Loopback address with prefix length of 128. // default = ::0 Address *string `protobuf:"bytes,2,opt,name=address,proto3,oneof" json:"address,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceIpv6Loopback) Reset() { @@ -18573,8 +18573,8 @@ func (*DeviceIpv6Loopback) Descriptor() ([]byte, []int) { } func (x *DeviceIpv6Loopback) GetEthName() string { - if x != nil { - return x.EthName + if x != nil && x.EthName != nil { + return *x.EthName } return "" } @@ -18587,8 +18587,8 @@ func (x *DeviceIpv6Loopback) GetAddress() string { } func (x *DeviceIpv6Loopback) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18700,13 +18700,13 @@ type Layer1 struct { // Enable/disable auto negotiation. AutoNegotiate *bool `protobuf:"varint,7,opt,name=auto_negotiate,json=autoNegotiate,proto3,oneof" json:"auto_negotiate,omitempty"` // Description missing in models - AutoNegotiation *Layer1AutoNegotiation `protobuf:"bytes,8,opt,name=auto_negotiation,json=autoNegotiation,proto3,oneof" json:"auto_negotiation,omitempty"` + AutoNegotiation *Layer1AutoNegotiation `protobuf:"bytes,8,opt,name=auto_negotiation,json=autoNegotiation,proto3" json:"auto_negotiation,omitempty"` // Description missing in models - FlowControl *Layer1FlowControl `protobuf:"bytes,9,opt,name=flow_control,json=flowControl,proto3,oneof" json:"flow_control,omitempty"` + FlowControl *Layer1FlowControl `protobuf:"bytes,9,opt,name=flow_control,json=flowControl,proto3" json:"flow_control,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Layer1) Reset() { @@ -18805,8 +18805,8 @@ func (x *Layer1) GetFlowControl() *Layer1FlowControl { } func (x *Layer1) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -18942,9 +18942,9 @@ type Layer1FlowControl struct { // default = Choice.Enum.ieee_802_1qbb Choice *Layer1FlowControl_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.Layer1FlowControl_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ieee_802_1Qbb *Layer1Ieee8021Qbb `protobuf:"bytes,3,opt,name=ieee_802_1qbb,json=ieee8021qbb,proto3,oneof" json:"ieee_802_1qbb,omitempty"` + Ieee_802_1Qbb *Layer1Ieee8021Qbb `protobuf:"bytes,3,opt,name=ieee_802_1qbb,json=ieee8021qbb,proto3" json:"ieee_802_1qbb,omitempty"` // Description missing in models - Ieee_802_3X *Layer1Ieee8023X `protobuf:"bytes,4,opt,name=ieee_802_3x,json=ieee8023x,proto3,oneof" json:"ieee_802_3x,omitempty"` + Ieee_802_3X *Layer1Ieee8023X `protobuf:"bytes,4,opt,name=ieee_802_3x,json=ieee8023x,proto3" json:"ieee_802_3x,omitempty"` } func (x *Layer1FlowControl) Reset() { @@ -19225,7 +19225,7 @@ type Capture struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,6,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Capture) Reset() { @@ -19296,8 +19296,8 @@ func (x *Capture) GetFormat() Capture_Format_Enum { } func (x *Capture) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -19314,15 +19314,15 @@ type CaptureFilter struct { // Offset from last filter in the list. If no filters are present it is offset from // position 0. Multiple custom filters can be present, the length of each custom filter // is the length of the value being filtered. - Custom *CaptureCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Custom *CaptureCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` // Description missing in models - Ethernet *CaptureEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` + Ethernet *CaptureEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` // Description missing in models - Vlan *CaptureVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` + Vlan *CaptureVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` // Description missing in models - Ipv4 *CaptureIpv4 `protobuf:"bytes,5,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + Ipv4 *CaptureIpv4 `protobuf:"bytes,5,opt,name=ipv4,proto3" json:"ipv4,omitempty"` // Description missing in models - Ipv6 *CaptureIpv6 `protobuf:"bytes,6,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + Ipv6 *CaptureIpv6 `protobuf:"bytes,6,opt,name=ipv6,proto3" json:"ipv6,omitempty"` } func (x *CaptureFilter) Reset() { @@ -19565,13 +19565,13 @@ type CaptureEthernet struct { unknownFields protoimpl.UnknownFields // Description missing in models - Src *CaptureField `protobuf:"bytes,1,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *CaptureField `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - Dst *CaptureField `protobuf:"bytes,2,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *CaptureField `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - EtherType *CaptureField `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + EtherType *CaptureField `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` // Description missing in models - PfcQueue *CaptureField `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` + PfcQueue *CaptureField `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` } func (x *CaptureEthernet) Reset() { @@ -19641,13 +19641,13 @@ type CaptureVlan struct { unknownFields protoimpl.UnknownFields // Description missing in models - Priority *CaptureField `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + Priority *CaptureField `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` // Description missing in models - Cfi *CaptureField `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` + Cfi *CaptureField `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` // Description missing in models - Id *CaptureField `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` + Id *CaptureField `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` // Description missing in models - Protocol *CaptureField `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *CaptureField `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` } func (x *CaptureVlan) Reset() { @@ -19717,33 +19717,33 @@ type CaptureIpv4 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - HeaderLength *CaptureField `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` + HeaderLength *CaptureField `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` // Description missing in models - Priority *CaptureField `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + Priority *CaptureField `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` // Description missing in models - TotalLength *CaptureField `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` + TotalLength *CaptureField `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` // Description missing in models - Identification *CaptureField `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` + Identification *CaptureField `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` // Description missing in models - Reserved *CaptureField `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + Reserved *CaptureField `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - DontFragment *CaptureField `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` + DontFragment *CaptureField `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` // Description missing in models - MoreFragments *CaptureField `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` + MoreFragments *CaptureField `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` // Description missing in models - FragmentOffset *CaptureField `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` + FragmentOffset *CaptureField `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` // Description missing in models - TimeToLive *CaptureField `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + TimeToLive *CaptureField `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` // Description missing in models - Protocol *CaptureField `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *CaptureField `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` // Description missing in models - HeaderChecksum *CaptureField `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` + HeaderChecksum *CaptureField `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` // Description missing in models - Src *CaptureField `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *CaptureField `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - Dst *CaptureField `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *CaptureField `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` } func (x *CaptureIpv4) Reset() { @@ -19883,21 +19883,21 @@ type CaptureIpv6 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - TrafficClass *CaptureField `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + TrafficClass *CaptureField `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` // Description missing in models - FlowLabel *CaptureField `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` + FlowLabel *CaptureField `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` // Description missing in models - PayloadLength *CaptureField `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` + PayloadLength *CaptureField `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` // Description missing in models - NextHeader *CaptureField `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` + NextHeader *CaptureField `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` // Description missing in models - HopLimit *CaptureField `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + HopLimit *CaptureField `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` // Description missing in models - Src *CaptureField `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *CaptureField `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - Dst *CaptureField `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *CaptureField `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` } func (x *CaptureIpv6) Reset() { @@ -20004,18 +20004,18 @@ type Device struct { Ipv6Loopbacks []*DeviceIpv6Loopback `protobuf:"bytes,3,rep,name=ipv6_loopbacks,json=ipv6Loopbacks,proto3" json:"ipv6_loopbacks,omitempty"` // The properties of an IS-IS router and its children, such as IS-IS interfaces and // route ranges. - Isis *DeviceIsisRouter `protobuf:"bytes,4,opt,name=isis,proto3,oneof" json:"isis,omitempty"` + Isis *DeviceIsisRouter `protobuf:"bytes,4,opt,name=isis,proto3" json:"isis,omitempty"` // The properties of BGP router and its children, such as BGPv4, BGPv6 peers and their // route ranges. - Bgp *DeviceBgpRouter `protobuf:"bytes,5,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` + Bgp *DeviceBgpRouter `protobuf:"bytes,5,opt,name=bgp,proto3" json:"bgp,omitempty"` // Configuration of VXLAN tunnel interfaces RFC Ref: https://datatracker.ietf.org/doc/html/rfc7348 - Vxlan *DeviceVxlan `protobuf:"bytes,6,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` + Vxlan *DeviceVxlan `protobuf:"bytes,6,opt,name=vxlan,proto3" json:"vxlan,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` // The properties of an RSVP router and its children. - Rsvp *DeviceRsvp `protobuf:"bytes,8,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` + Rsvp *DeviceRsvp `protobuf:"bytes,8,opt,name=rsvp,proto3" json:"rsvp,omitempty"` } func (x *Device) Reset() { @@ -20093,8 +20093,8 @@ func (x *Device) GetVxlan() *DeviceVxlan { } func (x *Device) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -20167,18 +20167,18 @@ type DeviceIsisRouter struct { // This contains the properties of a Multi-Instance-capable routers or MI-RTR. Each // router can emulate one ISIS instance at a time. - Instance *DeviceIsisMultiInstance `protobuf:"bytes,1,opt,name=instance,proto3,oneof" json:"instance,omitempty"` + Instance *DeviceIsisMultiInstance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` // The System ID for this emulated ISIS router, e.g. 640100010000. // required = true - SystemId string `protobuf:"bytes,2,opt,name=system_id,json=systemId,proto3" json:"system_id,omitempty"` + SystemId *string `protobuf:"bytes,2,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` // List of ISIS interfaces for this router. Interfaces []*IsisInterface `protobuf:"bytes,3,rep,name=interfaces,proto3" json:"interfaces,omitempty"` // Contains basic properties of an ISIS Router. - Basic *IsisBasic `protobuf:"bytes,4,opt,name=basic,proto3,oneof" json:"basic,omitempty"` + Basic *IsisBasic `protobuf:"bytes,4,opt,name=basic,proto3" json:"basic,omitempty"` // Contains advance properties of an ISIS Router.. - Advanced *IsisAdvanced `protobuf:"bytes,5,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *IsisAdvanced `protobuf:"bytes,5,opt,name=advanced,proto3" json:"advanced,omitempty"` // ISIS Router authentication properties. - RouterAuth *IsisAuthentication `protobuf:"bytes,6,opt,name=router_auth,json=routerAuth,proto3,oneof" json:"router_auth,omitempty"` + RouterAuth *IsisAuthentication `protobuf:"bytes,6,opt,name=router_auth,json=routerAuth,proto3" json:"router_auth,omitempty"` // Emulated ISIS IPv4 routes. V4Routes []*IsisV4RouteRange `protobuf:"bytes,7,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` // Emulated ISIS IPv6 routes. @@ -20186,7 +20186,7 @@ type DeviceIsisRouter struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *DeviceIsisRouter) Reset() { @@ -20229,8 +20229,8 @@ func (x *DeviceIsisRouter) GetInstance() *DeviceIsisMultiInstance { } func (x *DeviceIsisRouter) GetSystemId() string { - if x != nil { - return x.SystemId + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } @@ -20278,8 +20278,8 @@ func (x *DeviceIsisRouter) GetV6Routes() []*IsisV6RouteRange { } func (x *DeviceIsisRouter) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -20361,7 +20361,7 @@ type IsisInterface struct { // - /components/schemas/Device.Ethernet/properties/name // // required = true - EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` + EthName *string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3,oneof" json:"eth_name,omitempty"` // The default metric cost for the interface. // default = 10 Metric *uint32 `protobuf:"varint,2,opt,name=metric,proto3,oneof" json:"metric,omitempty"` @@ -20373,26 +20373,26 @@ type IsisInterface struct { // default = LevelType.Enum.level_2 LevelType *IsisInterface_LevelType_Enum `protobuf:"varint,4,opt,name=level_type,json=levelType,proto3,enum=otg.IsisInterface_LevelType_Enum,oneof" json:"level_type,omitempty"` // Settings of Level 1 Hello. - L1Settings *IsisInterfaceLevel `protobuf:"bytes,5,opt,name=l1_settings,json=l1Settings,proto3,oneof" json:"l1_settings,omitempty"` + L1Settings *IsisInterfaceLevel `protobuf:"bytes,5,opt,name=l1_settings,json=l1Settings,proto3" json:"l1_settings,omitempty"` // Settings of Level 2 Hello. - L2Settings *IsisInterfaceLevel `protobuf:"bytes,6,opt,name=l2_settings,json=l2Settings,proto3,oneof" json:"l2_settings,omitempty"` + L2Settings *IsisInterfaceLevel `protobuf:"bytes,6,opt,name=l2_settings,json=l2Settings,proto3" json:"l2_settings,omitempty"` // Contains the properties of multiple topologies. MultiTopologyIds []*IsisMT `protobuf:"bytes,7,rep,name=multi_topology_ids,json=multiTopologyIds,proto3" json:"multi_topology_ids,omitempty"` // Contains a list of Traffic Engineering attributes. TrafficEngineering []*LinkStateTE `protobuf:"bytes,8,rep,name=traffic_engineering,json=trafficEngineering,proto3" json:"traffic_engineering,omitempty"` // The Circuit authentication method used for the interfaces on this emulated ISIS v4/v6 // router. - Authentication *IsisInterfaceAuthentication `protobuf:"bytes,9,opt,name=authentication,proto3,oneof" json:"authentication,omitempty"` + Authentication *IsisInterfaceAuthentication `protobuf:"bytes,9,opt,name=authentication,proto3" json:"authentication,omitempty"` // Optional container for advanced interface properties. - Advanced *IsisInterfaceAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *IsisInterfaceAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` // Link protection on the ISIS link between two interfaces. - LinkProtection *IsisInterfaceLinkProtection `protobuf:"bytes,11,opt,name=link_protection,json=linkProtection,proto3,oneof" json:"link_protection,omitempty"` + LinkProtection *IsisInterfaceLinkProtection `protobuf:"bytes,11,opt,name=link_protection,json=linkProtection,proto3" json:"link_protection,omitempty"` // This contains list of SRLG values for the link between two interfaces. SrlgValues []uint32 `protobuf:"varint,12,rep,packed,name=srlg_values,json=srlgValues,proto3" json:"srlg_values,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *IsisInterface) Reset() { @@ -20428,8 +20428,8 @@ func (*IsisInterface) Descriptor() ([]byte, []int) { } func (x *IsisInterface) GetEthName() string { - if x != nil { - return x.EthName + if x != nil && x.EthName != nil { + return *x.EthName } return "" } @@ -20512,8 +20512,8 @@ func (x *IsisInterface) GetSrlgValues() []uint32 { } func (x *IsisInterface) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -20676,7 +20676,7 @@ type LinkStateTE struct { // default = 125000000 MaxReservableBandwidth *uint32 `protobuf:"varint,4,opt,name=max_reservable_bandwidth,json=maxReservableBandwidth,proto3,oneof" json:"max_reservable_bandwidth,omitempty"` // Configuration of bandwidths of priority 0 through priority 7. - PriorityBandwidths *LinkStatepriorityBandwidths `protobuf:"bytes,5,opt,name=priority_bandwidths,json=priorityBandwidths,proto3,oneof" json:"priority_bandwidths,omitempty"` + PriorityBandwidths *LinkStatepriorityBandwidths `protobuf:"bytes,5,opt,name=priority_bandwidths,json=priorityBandwidths,proto3" json:"priority_bandwidths,omitempty"` } func (x *LinkStateTE) Reset() { @@ -20878,7 +20878,7 @@ type IsisInterfaceAuthentication struct { // The circuit authentication method. // required = true - AuthType IsisInterfaceAuthentication_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisInterfaceAuthentication_AuthType_Enum" json:"auth_type,omitempty"` + AuthType *IsisInterfaceAuthentication_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisInterfaceAuthentication_AuthType_Enum,oneof" json:"auth_type,omitempty"` // MD5 key to be used for authentication. Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` // The password, in clear text, to be used for Authentication. @@ -20918,8 +20918,8 @@ func (*IsisInterfaceAuthentication) Descriptor() ([]byte, []int) { } func (x *IsisInterfaceAuthentication) GetAuthType() IsisInterfaceAuthentication_AuthType_Enum { - if x != nil { - return x.AuthType + if x != nil && x.AuthType != nil { + return *x.AuthType } return IsisInterfaceAuthentication_AuthType_unspecified } @@ -21408,10 +21408,10 @@ type IsisAuthentication struct { IgnoreReceiveMd5 *bool `protobuf:"varint,1,opt,name=ignore_receive_md5,json=ignoreReceiveMd5,proto3,oneof" json:"ignore_receive_md5,omitempty"` // The Area authentication method used for the emulated ISIS router. // This is used for L1 LSPs. - AreaAuth *IsisAuthenticationBase `protobuf:"bytes,2,opt,name=area_auth,json=areaAuth,proto3,oneof" json:"area_auth,omitempty"` + AreaAuth *IsisAuthenticationBase `protobuf:"bytes,2,opt,name=area_auth,json=areaAuth,proto3" json:"area_auth,omitempty"` // The Domain authentication method used for the emulated ISIS router. // This is used for L2 LSPs. - DomainAuth *IsisAuthenticationBase `protobuf:"bytes,3,opt,name=domain_auth,json=domainAuth,proto3,oneof" json:"domain_auth,omitempty"` + DomainAuth *IsisAuthenticationBase `protobuf:"bytes,3,opt,name=domain_auth,json=domainAuth,proto3" json:"domain_auth,omitempty"` } func (x *IsisAuthentication) Reset() { @@ -21475,7 +21475,7 @@ type IsisAuthenticationBase struct { // The authentication method. // required = true - AuthType IsisAuthenticationBase_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisAuthenticationBase_AuthType_Enum" json:"auth_type,omitempty"` + AuthType *IsisAuthenticationBase_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisAuthenticationBase_AuthType_Enum,oneof" json:"auth_type,omitempty"` // Authentication as an MD5 key. Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` // Authentication as a clear text password. @@ -21515,8 +21515,8 @@ func (*IsisAuthenticationBase) Descriptor() ([]byte, []int) { } func (x *IsisAuthenticationBase) GetAuthType() IsisAuthenticationBase_AuthType_Enum { - if x != nil { - return x.AuthType + if x != nil && x.AuthType != nil { + return *x.AuthType } return IsisAuthenticationBase_AuthType_unspecified } @@ -21568,7 +21568,7 @@ type IsisV4RouteRange struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags // will be advertised or not. // default = False @@ -21645,8 +21645,8 @@ func (x *IsisV4RouteRange) GetRedistributionType() IsisV4RouteRange_Redistributi } func (x *IsisV4RouteRange) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -21687,7 +21687,7 @@ type V4RouteAddress struct { // The starting address of the network. // required = true - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` // The IPv4 network prefix length to be applied to the address. // default = 24 Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` @@ -21733,8 +21733,8 @@ func (*V4RouteAddress) Descriptor() ([]byte, []int) { } func (x *V4RouteAddress) GetAddress() string { - if x != nil { - return x.Address + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -21768,7 +21768,7 @@ type V6RouteAddress struct { // The starting address of the network. // required = true - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` // The IPv6 network prefix length to be applied to the address. // default = 64 Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` @@ -21814,8 +21814,8 @@ func (*V6RouteAddress) Descriptor() ([]byte, []int) { } func (x *V6RouteAddress) GetAddress() string { - if x != nil { - return x.Address + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -21849,7 +21849,7 @@ type MACRouteAddress struct { // The starting address of the MAC Range. // required = true - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` // The MAC prefix length to be applied to the address. // default = 48 Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` @@ -21895,8 +21895,8 @@ func (*MACRouteAddress) Descriptor() ([]byte, []int) { } func (x *MACRouteAddress) GetAddress() string { - if x != nil { - return x.Address + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -21955,7 +21955,7 @@ type IsisV6RouteRange struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags // will be advertised or not. // default = False @@ -22032,8 +22032,8 @@ func (x *IsisV6RouteRange) GetRedistributionType() IsisV6RouteRange_Redistributi } func (x *IsisV6RouteRange) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -22075,7 +22075,7 @@ type DeviceBgpRouter struct { // The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is // often represented by an IPv4 address. // required = true - RouterId string `protobuf:"bytes,1,opt,name=router_id,json=routerId,proto3" json:"router_id,omitempty"` + RouterId *string `protobuf:"bytes,1,opt,name=router_id,json=routerId,proto3,oneof" json:"router_id,omitempty"` // This contains an array of references to IPv4 interfaces, each of which will have // list of peers to different destinations. Ipv4Interfaces []*BgpV4Interface `protobuf:"bytes,2,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` @@ -22117,8 +22117,8 @@ func (*DeviceBgpRouter) Descriptor() ([]byte, []int) { } func (x *DeviceBgpRouter) GetRouterId() string { - if x != nil { - return x.RouterId + if x != nil && x.RouterId != nil { + return *x.RouterId } return "" } @@ -22497,7 +22497,7 @@ type BgpV4Peer struct { // IPv4 address of the BGP peer for the session. // required = true - PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` + PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments // (ES) Per BGP Peer for IPv4 Address Family Identifier (AFI). // @@ -22527,20 +22527,20 @@ type BgpV4Peer struct { // attribute in 'as_path' field in any Route Range should be changed from default value // 'do_not_include_local_as' to any other value. // required = true - AsType BgpV4Peer_AsType_Enum `protobuf:"varint,3,opt,name=as_type,json=asType,proto3,enum=otg.BgpV4Peer_AsType_Enum" json:"as_type,omitempty"` + AsType *BgpV4Peer_AsType_Enum `protobuf:"varint,3,opt,name=as_type,json=asType,proto3,enum=otg.BgpV4Peer_AsType_Enum,oneof" json:"as_type,omitempty"` // Autonomous System Number (AS number or ASN) // required = true - AsNumber uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` + AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` // The width in bytes of the as_number values. Any as_number values that exceeds the // width MUST result in an error. // default = AsNumberWidth.Enum.four AsNumberWidth *BgpV4Peer_AsNumberWidth_Enum `protobuf:"varint,5,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV4Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Description missing in models - Capability *BgpCapability `protobuf:"bytes,7,opt,name=capability,proto3,oneof" json:"capability,omitempty"` + Capability *BgpCapability `protobuf:"bytes,7,opt,name=capability,proto3" json:"capability,omitempty"` // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,8,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,8,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` // Emulated BGPv4 route ranges. V4Routes []*BgpV4RouteRange `protobuf:"bytes,9,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` // Emulated BGPv6 route ranges. @@ -22556,9 +22556,9 @@ type BgpV4Peer struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,14,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,14,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` } func (x *BgpV4Peer) Reset() { @@ -22594,8 +22594,8 @@ func (*BgpV4Peer) Descriptor() ([]byte, []int) { } func (x *BgpV4Peer) GetPeerAddress() string { - if x != nil { - return x.PeerAddress + if x != nil && x.PeerAddress != nil { + return *x.PeerAddress } return "" } @@ -22608,15 +22608,15 @@ func (x *BgpV4Peer) GetEvpnEthernetSegments() []*BgpV4EthernetSegment { } func (x *BgpV4Peer) GetAsType() BgpV4Peer_AsType_Enum { - if x != nil { - return x.AsType + if x != nil && x.AsType != nil { + return *x.AsType } return BgpV4Peer_AsType_unspecified } func (x *BgpV4Peer) GetAsNumber() uint32 { - if x != nil { - return x.AsNumber + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } @@ -22678,8 +22678,8 @@ func (x *BgpV4Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { } func (x *BgpV4Peer) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -22709,7 +22709,7 @@ type BgpV4Interface struct { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` // This contains the list of BGPv4 peers configured on this interface. Peers []*BgpV4Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } @@ -22747,8 +22747,8 @@ func (*BgpV4Interface) Descriptor() ([]byte, []int) { } func (x *BgpV4Interface) GetIpv4Name() string { - if x != nil { - return x.Ipv4Name + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } return "" } @@ -22769,7 +22769,7 @@ type BgpV4EthernetSegment struct { unknownFields protoimpl.UnknownFields // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` // This contains the list of EVIs. Evis []*BgpV4EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero @@ -22784,7 +22784,7 @@ type BgpV4EthernetSegment struct { // default = 0 EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -22816,7 +22816,7 @@ type BgpV4EthernetSegment struct { // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } func (x *BgpV4EthernetSegment) Reset() { @@ -23378,7 +23378,7 @@ type BgpV4EvpnEvis struct { // default = Choice.Enum.evi_vxlan Choice *BgpV4EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV4EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV4EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` + EviVxlan *BgpV4EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` } func (x *BgpV4EvpnEvis) Reset() { @@ -23454,7 +23454,7 @@ type BgpV4EviVxlan struct { AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with // this EVI. RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` @@ -23465,7 +23465,7 @@ type BgpV4EviVxlan struct { // List of L3VNI Import Route Targets. L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -23497,7 +23497,7 @@ type BgpV4EviVxlan struct { // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } func (x *BgpV4EviVxlan) Reset() { @@ -23706,15 +23706,15 @@ type BgpCMacIpRange struct { unknownFields protoimpl.UnknownFields // Host MAC address range per Broadcast Domain. - MacAddresses *MACRouteAddress `protobuf:"bytes,1,opt,name=mac_addresses,json=macAddresses,proto3,oneof" json:"mac_addresses,omitempty"` + MacAddresses *MACRouteAddress `protobuf:"bytes,1,opt,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` // Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement // Route (Type 2) // default = 0 L2Vni *uint32 `protobuf:"varint,2,opt,name=l2vni,proto3,oneof" json:"l2vni,omitempty"` // Host IPv4 address range per Broadcast Domain. - Ipv4Addresses *V4RouteAddress `protobuf:"bytes,3,opt,name=ipv4_addresses,json=ipv4Addresses,proto3,oneof" json:"ipv4_addresses,omitempty"` + Ipv4Addresses *V4RouteAddress `protobuf:"bytes,3,opt,name=ipv4_addresses,json=ipv4Addresses,proto3" json:"ipv4_addresses,omitempty"` // Host IPv6 address range per Broadcast Domain. - Ipv6Addresses *V6RouteAddress `protobuf:"bytes,4,opt,name=ipv6_addresses,json=ipv6Addresses,proto3,oneof" json:"ipv6_addresses,omitempty"` + Ipv6Addresses *V6RouteAddress `protobuf:"bytes,4,opt,name=ipv6_addresses,json=ipv6Addresses,proto3" json:"ipv6_addresses,omitempty"` // Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement // Route (Type 2). // default = 0 @@ -23723,7 +23723,7 @@ type BgpCMacIpRange struct { // default = False IncludeDefaultGateway *bool `protobuf:"varint,6,opt,name=include_default_gateway,json=includeDefaultGateway,proto3,oneof" json:"include_default_gateway,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,8,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -23755,11 +23755,11 @@ type BgpCMacIpRange struct { // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,9,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,11,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *BgpCMacIpRange) Reset() { @@ -23865,8 +23865,8 @@ func (x *BgpCMacIpRange) GetAsPath() *BgpAsPath { } func (x *BgpCMacIpRange) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -24493,17 +24493,17 @@ type BgpV4RouteRange struct { // default = ::0 NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` // Deprecated: This property is deprecated in favor of property extended_communities // // Deprecated: This property is deprecated in favor of property extended_communities @@ -24644,8 +24644,8 @@ func (x *BgpV4RouteRange) GetAddPath() *BgpAddPath { } func (x *BgpV4RouteRange) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -24733,19 +24733,19 @@ type BgpExtendedCommunity struct { // default = Choice.Enum.transitive_2octet_as_type Choice *BgpExtendedCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunity_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3,oneof" json:"transitive_2octet_as_type,omitempty"` + Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3" json:"transitive_2octet_as_type,omitempty"` // Description missing in models - TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3,oneof" json:"transitive_ipv4_address_type,omitempty"` + TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3" json:"transitive_ipv4_address_type,omitempty"` // Description missing in models - Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3,oneof" json:"transitive_4octet_as_type,omitempty"` + Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3" json:"transitive_4octet_as_type,omitempty"` // Description missing in models - TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3,oneof" json:"transitive_opaque_type,omitempty"` + TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3" json:"transitive_opaque_type,omitempty"` // Description missing in models - TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3,oneof" json:"transitive_evpn_type,omitempty"` + TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3" json:"transitive_evpn_type,omitempty"` // Description missing in models - NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3,oneof" json:"non_transitive_2octet_as_type,omitempty"` + NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3" json:"non_transitive_2octet_as_type,omitempty"` // Description missing in models - Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3" json:"custom,omitempty"` } func (x *BgpExtendedCommunity) Reset() { @@ -24973,9 +24973,9 @@ type BgpExtendedCommunityTransitive2OctetAsType struct { // default = Choice.Enum.route_target_subtype Choice *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` + RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } func (x *BgpExtendedCommunityTransitive2OctetAsType) Reset() { @@ -25168,9 +25168,9 @@ type BgpExtendedCommunityTransitiveIpv4AddressType struct { // default = Choice.Enum.route_target_subtype Choice *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` + RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } func (x *BgpExtendedCommunityTransitiveIpv4AddressType) Reset() { @@ -25364,9 +25364,9 @@ type BgpExtendedCommunityTransitive4OctetAsType struct { // default = Choice.Enum.route_target_subtype Choice *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` + RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } func (x *BgpExtendedCommunityTransitive4OctetAsType) Reset() { @@ -25568,9 +25568,9 @@ type BgpExtendedCommunityTransitiveOpaqueType struct { // default = Choice.Enum.color_subtype Choice *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3,oneof" json:"color_subtype,omitempty"` + ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3" json:"color_subtype,omitempty"` // Description missing in models - EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3,oneof" json:"encapsulation_subtype,omitempty"` + EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3" json:"encapsulation_subtype,omitempty"` } func (x *BgpExtendedCommunityTransitiveOpaqueType) Reset() { @@ -25687,7 +25687,7 @@ type BgpExtendedCommunityTransitiveEvpnType struct { // default = Choice.Enum.router_mac_subtype Choice *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3,oneof" json:"router_mac_subtype,omitempty"` + RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3" json:"router_mac_subtype,omitempty"` } func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { @@ -25810,7 +25810,7 @@ type BgpExtendedCommunityNonTransitive2OctetAsType struct { // default = Choice.Enum.link_bandwidth_subtype Choice *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3,oneof" json:"link_bandwidth_subtype,omitempty"` + LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3" json:"link_bandwidth_subtype,omitempty"` } func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { @@ -25962,17 +25962,17 @@ type BgpV6RouteRange struct { // default = ::0 NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` // Deprecated: This property is deprecated in favor of property extended_communities // // Deprecated: This property is deprecated in favor of property extended_communities @@ -26113,8 +26113,8 @@ func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { } func (x *BgpV6RouteRange) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -26154,7 +26154,7 @@ type BgpSrteV4Policy struct { // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected // on the basis of the SR Policy type (AFI). // required = true - Ipv4Endpoint string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3" json:"ipv4_endpoint,omitempty"` + Ipv4Endpoint *string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3,oneof" json:"ipv4_endpoint,omitempty"` // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary @@ -26172,11 +26172,11 @@ type BgpSrteV4Policy struct { // and the Nexthop type 'next_hop_address_type' is IPv6. NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Optional Community settings. Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -26212,7 +26212,7 @@ type BgpSrteV4Policy struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -26268,8 +26268,8 @@ func (x *BgpSrteV4Policy) GetColor() uint32 { } func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { - if x != nil { - return x.Ipv4Endpoint + if x != nil && x.Ipv4Endpoint != nil { + return *x.Ipv4Endpoint } return "" } @@ -26345,8 +26345,8 @@ func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { } func (x *BgpSrteV4Policy) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -26365,25 +26365,25 @@ type BgpSrteV4TunnelTlv struct { unknownFields protoimpl.UnknownFields // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` // Description missing in models SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -26481,8 +26481,8 @@ func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { } func (x *BgpSrteV4TunnelTlv) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -26933,7 +26933,7 @@ type BgpSrteSegmentList struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -26989,8 +26989,8 @@ func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { } func (x *BgpSrteSegmentList) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -27025,33 +27025,33 @@ type BgpSrteSegment struct { // SID for SRv6. // Type K: IPv6 Local and Remote addresses for SRv6. // required = true - SegmentType BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum" json:"segment_type,omitempty"` + SegmentType *BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum,oneof" json:"segment_type,omitempty"` // Description missing in models - TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3,oneof" json:"type_a,omitempty"` + TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3" json:"type_a,omitempty"` // Description missing in models - TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3,oneof" json:"type_b,omitempty"` + TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3" json:"type_b,omitempty"` // Description missing in models - TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3,oneof" json:"type_c,omitempty"` + TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3" json:"type_c,omitempty"` // Description missing in models - TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3,oneof" json:"type_d,omitempty"` + TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3" json:"type_d,omitempty"` // Description missing in models - TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3,oneof" json:"type_e,omitempty"` + TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3" json:"type_e,omitempty"` // Description missing in models - TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3,oneof" json:"type_f,omitempty"` + TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3" json:"type_f,omitempty"` // Description missing in models - TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3,oneof" json:"type_g,omitempty"` + TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3" json:"type_g,omitempty"` // Description missing in models - TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3,oneof" json:"type_h,omitempty"` + TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3" json:"type_h,omitempty"` // Description missing in models - TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3,oneof" json:"type_i,omitempty"` + TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3" json:"type_i,omitempty"` // Description missing in models - TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3,oneof" json:"type_j,omitempty"` + TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3" json:"type_j,omitempty"` // Description missing in models - TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3,oneof" json:"type_k,omitempty"` + TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3" json:"type_k,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -27093,8 +27093,8 @@ func (*BgpSrteSegment) Descriptor() ([]byte, []int) { } func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { - if x != nil { - return x.SegmentType + if x != nil && x.SegmentType != nil { + return *x.SegmentType } return BgpSrteSegment_SegmentType_unspecified } @@ -27177,8 +27177,8 @@ func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { } func (x *BgpSrteSegment) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -27445,9 +27445,9 @@ type BgpSrteSegmentBTypeSubTlv struct { Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // SRv6 SID. // required = true - Srv6Sid string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + Srv6Sid *string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } func (x *BgpSrteSegmentBTypeSubTlv) Reset() { @@ -27490,8 +27490,8 @@ func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { } func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { - if x != nil { - return x.Srv6Sid + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid } return "" } @@ -27517,9 +27517,9 @@ type BgpSrteSegmentCTypeSubTlv struct { SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` // IPv4 address representing a node. // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentCTypeSubTlv) Reset() { @@ -27569,8 +27569,8 @@ func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { } func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { - if x != nil { - return x.Ipv4NodeAddress + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress } return "" } @@ -27596,9 +27596,9 @@ type BgpSrteSegmentDTypeSubTlv struct { SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` // IPv6 address representing a node. // required = true - Ipv6NodeAddress string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentDTypeSubTlv) Reset() { @@ -27648,8 +27648,8 @@ func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { } func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { - if x != nil { - return x.Ipv6NodeAddress + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } return "" } @@ -27675,9 +27675,9 @@ type BgpSrteSegmentETypeSubTlv struct { LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` // IPv4 address representing a node. // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentETypeSubTlv) Reset() { @@ -27727,8 +27727,8 @@ func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { } func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { - if x != nil { - return x.Ipv4NodeAddress + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress } return "" } @@ -27751,12 +27751,12 @@ type BgpSrteSegmentFTypeSubTlv struct { Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // Local IPv4 Address. // required = true - LocalIpv4Address string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3" json:"local_ipv4_address,omitempty"` + LocalIpv4Address *string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3,oneof" json:"local_ipv4_address,omitempty"` // Remote IPv4 Address. // required = true - RemoteIpv4Address string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3" json:"remote_ipv4_address,omitempty"` + RemoteIpv4Address *string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3,oneof" json:"remote_ipv4_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentFTypeSubTlv) Reset() { @@ -27799,15 +27799,15 @@ func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { } func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { - if x != nil { - return x.LocalIpv4Address + if x != nil && x.LocalIpv4Address != nil { + return *x.LocalIpv4Address } return "" } func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { - if x != nil { - return x.RemoteIpv4Address + if x != nil && x.RemoteIpv4Address != nil { + return *x.RemoteIpv4Address } return "" } @@ -27834,15 +27834,15 @@ type BgpSrteSegmentGTypeSubTlv struct { LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` // IPv6 address representing a node. // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + LocalIpv6NodeAddress *string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` // IPv6 address representing a node. // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + RemoteIpv6NodeAddress *string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentGTypeSubTlv) Reset() { @@ -27892,8 +27892,8 @@ func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { } func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } return "" } @@ -27906,8 +27906,8 @@ func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { } func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress } return "" } @@ -27930,12 +27930,12 @@ type BgpSrteSegmentHTypeSubTlv struct { Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // Local IPv6 Address. // required = true - LocalIpv6Address string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + LocalIpv6Address *string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` // Remote IPv6 Address. // required = true - RemoteIpv6Address string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + RemoteIpv6Address *string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } func (x *BgpSrteSegmentHTypeSubTlv) Reset() { @@ -27978,15 +27978,15 @@ func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { } func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } return "" } func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } return "" } @@ -28009,11 +28009,11 @@ type BgpSrteSegmentITypeSubTlv struct { Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // IPv6 address representing a node. // required = true - Ipv6NodeAddress string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + Ipv6NodeAddress *string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` // Optional SRv6 SID. Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } func (x *BgpSrteSegmentITypeSubTlv) Reset() { @@ -28056,8 +28056,8 @@ func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { } func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { - if x != nil { - return x.Ipv6NodeAddress + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } return "" } @@ -28094,17 +28094,17 @@ type BgpSrteSegmentJTypeSubTlv struct { LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` // IPv6 address representing a node. // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + LocalIpv6NodeAddress *string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` // IPv6 address representing a node. // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + RemoteIpv6NodeAddress *string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` // Optional SRv6 SID. Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } func (x *BgpSrteSegmentJTypeSubTlv) Reset() { @@ -28161,8 +28161,8 @@ func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { } func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } return "" } @@ -28175,8 +28175,8 @@ func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { } func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress } return "" } @@ -28209,14 +28209,14 @@ type BgpSrteSegmentKTypeSubTlv struct { SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` // IPv6 address representing a node. // required = true - LocalIpv6Address string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + LocalIpv6Address *string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` // IPv6 address representing a node. // required = true - RemoteIpv6Address string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + RemoteIpv6Address *string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` // Optional SRv6 SID. Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } func (x *BgpSrteSegmentKTypeSubTlv) Reset() { @@ -28266,15 +28266,15 @@ func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { } func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } return "" } func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } return "" } @@ -28310,7 +28310,7 @@ type BgpSrteV6Policy struct { // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected // on the basis of the SR Policy type (AFI). // required = true - Ipv6Endpoint string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3" json:"ipv6_endpoint,omitempty"` + Ipv6Endpoint *string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3,oneof" json:"ipv6_endpoint,omitempty"` // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary @@ -28330,11 +28330,11 @@ type BgpSrteV6Policy struct { // default = ::0 NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -28370,7 +28370,7 @@ type BgpSrteV6Policy struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -28426,8 +28426,8 @@ func (x *BgpSrteV6Policy) GetColor() uint32 { } func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { - if x != nil { - return x.Ipv6Endpoint + if x != nil && x.Ipv6Endpoint != nil { + return *x.Ipv6Endpoint } return "" } @@ -28503,8 +28503,8 @@ func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { } func (x *BgpSrteV6Policy) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -28523,25 +28523,25 @@ type BgpSrteV6TunnelTlv struct { unknownFields protoimpl.UnknownFields // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` // Description missing in models SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to @@ -28639,8 +28639,8 @@ func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { } func (x *BgpSrteV6TunnelTlv) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -28752,9 +28752,9 @@ type BgpV6Peer struct { // IPv6 address of the BGP peer for the session // required = true - PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` + PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` // Description missing in models - SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3,oneof" json:"segment_routing,omitempty"` + SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3" json:"segment_routing,omitempty"` // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). // @@ -28784,20 +28784,20 @@ type BgpV6Peer struct { // attribute in 'as_path' field in any Route Range should be changed from default value // 'do_not_include_local_as' to any other value. // required = true - AsType BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum" json:"as_type,omitempty"` + AsType *BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum,oneof" json:"as_type,omitempty"` // Autonomous System Number (AS number or ASN) // required = true - AsNumber uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` + AsNumber *uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` // The width in bytes of the as_number values. Any as_number values that exceeds the // width MUST result in an error. // default = AsNumberWidth.Enum.four AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` // Description missing in models - Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3,oneof" json:"capability,omitempty"` + Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3" json:"capability,omitempty"` // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` // Emulated BGPv4 route ranges. V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` // Emulated BGPv6 route ranges. @@ -28813,9 +28813,9 @@ type BgpV6Peer struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` } func (x *BgpV6Peer) Reset() { @@ -28851,8 +28851,8 @@ func (*BgpV6Peer) Descriptor() ([]byte, []int) { } func (x *BgpV6Peer) GetPeerAddress() string { - if x != nil { - return x.PeerAddress + if x != nil && x.PeerAddress != nil { + return *x.PeerAddress } return "" } @@ -28872,15 +28872,15 @@ func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { } func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { - if x != nil { - return x.AsType + if x != nil && x.AsType != nil { + return *x.AsType } return BgpV6Peer_AsType_unspecified } func (x *BgpV6Peer) GetAsNumber() uint32 { - if x != nil { - return x.AsNumber + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } @@ -28942,8 +28942,8 @@ func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { } func (x *BgpV6Peer) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -28973,7 +28973,7 @@ type BgpV6Interface struct { // - /components/schemas/Device.Ipv6Loopback/properties/name // // required = true - Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` + Ipv6Name *string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3,oneof" json:"ipv6_name,omitempty"` // This contains the list of BGPv6 peers configured on this interface. Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } @@ -29011,8 +29011,8 @@ func (*BgpV6Interface) Descriptor() ([]byte, []int) { } func (x *BgpV6Interface) GetIpv6Name() string { - if x != nil { - return x.Ipv6Name + if x != nil && x.Ipv6Name != nil { + return *x.Ipv6Name } return "" } @@ -29153,7 +29153,7 @@ type BgpV6EthernetSegment struct { unknownFields protoimpl.UnknownFields // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` // This contains the list of EVIs. Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero @@ -29168,7 +29168,7 @@ type BgpV6EthernetSegment struct { // default = 0 EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -29200,7 +29200,7 @@ type BgpV6EthernetSegment struct { // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } func (x *BgpV6EthernetSegment) Reset() { @@ -29311,7 +29311,7 @@ type BgpV6EvpnEvis struct { // default = Choice.Enum.evi_vxlan Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` + EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` } func (x *BgpV6EvpnEvis) Reset() { @@ -29387,7 +29387,7 @@ type BgpV6EviVxlan struct { AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with // this EVI. RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` @@ -29398,7 +29398,7 @@ type BgpV6EviVxlan struct { // List of L3VNI Import Route Targets. L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive @@ -29430,7 +29430,7 @@ type BgpV6EviVxlan struct { // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } func (x *BgpV6EviVxlan) Reset() { @@ -29704,18 +29704,18 @@ type VxlanV4Tunnel struct { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` // Description missing in models - DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *VxlanV4Tunnel) Reset() { @@ -29751,8 +29751,8 @@ func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { } func (x *VxlanV4Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface + if x != nil && x.SourceInterface != nil { + return *x.SourceInterface } return "" } @@ -29765,15 +29765,15 @@ func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { } func (x *VxlanV4Tunnel) GetVni() uint32 { - if x != nil { - return x.Vni + if x != nil && x.Vni != nil { + return *x.Vni } return 0 } func (x *VxlanV4Tunnel) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -29796,18 +29796,18 @@ type VxlanV6Tunnel struct { // - /components/schemas/Device.Ipv6Loopback/properties/name // // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` // Description missing in models - DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *VxlanV6Tunnel) Reset() { @@ -29843,8 +29843,8 @@ func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { } func (x *VxlanV6Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface + if x != nil && x.SourceInterface != nil { + return *x.SourceInterface } return "" } @@ -29857,15 +29857,15 @@ func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { } func (x *VxlanV6Tunnel) GetVni() uint32 { - if x != nil { - return x.Vni + if x != nil && x.Vni != nil { + return *x.Vni } return 0 } func (x *VxlanV6Tunnel) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -29880,9 +29880,9 @@ type VxlanV4TunnelDestinationIPMode struct { // default = Choice.Enum.multicast Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` // Description missing in models - Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` + Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` } func (x *VxlanV4TunnelDestinationIPMode) Reset() { @@ -29948,9 +29948,9 @@ type VxlanV6TunnelDestinationIPMode struct { // default = Choice.Enum.multicast Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` // Description missing in models - Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` + Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` } func (x *VxlanV6TunnelDestinationIPMode) Reset() { @@ -30476,10 +30476,10 @@ type RsvpIpv4Interface struct { // - /components/schemas/Device.Ipv4/properties/name // // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` // IPv4 address of the RSVP neighbor on this interface. // required = true - NeighborIp string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"` + NeighborIp *string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3,oneof" json:"neighbor_ip,omitempty"` // The user-defined label space start value. The LSPs for which this router acts as // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end // together defines this label-pool. @@ -30552,15 +30552,15 @@ func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { } func (x *RsvpIpv4Interface) GetIpv4Name() string { - if x != nil { - return x.Ipv4Name + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } return "" } func (x *RsvpIpv4Interface) GetNeighborIp() string { - if x != nil { - return x.NeighborIp + if x != nil && x.NeighborIp != nil { + return *x.NeighborIp } return "" } @@ -30648,9 +30648,9 @@ type RsvpLspIpv4Interface struct { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` // Contains properties of Tail(Egress) LSPs. - P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3,oneof" json:"p2p_egress_ipv4_lsps,omitempty"` + P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3" json:"p2p_egress_ipv4_lsps,omitempty"` // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` } @@ -30688,8 +30688,8 @@ func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { } func (x *RsvpLspIpv4Interface) GetIpv4Name() string { - if x != nil { - return x.Ipv4Name + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } return "" } @@ -30717,7 +30717,7 @@ type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // The time in seconds between successive transmissions of RESV Refreshes. The actual // refresh interval is jittered by upto 50%. There is no specification specified maximum // value. For clarity, setting the maximum to 1 hour. @@ -30780,8 +30780,8 @@ func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { } func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -30830,10 +30830,10 @@ type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // IPv4 address of the remote endpoint of the LSP. // required = true - RemoteAddress string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"` + RemoteAddress *string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3,oneof" json:"remote_address,omitempty"` // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. // default = 1 TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` @@ -30869,20 +30869,20 @@ type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object // in the Path Message sent for the LSP. - SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3,oneof" json:"session_attribute,omitempty"` + SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3" json:"session_attribute,omitempty"` // This contains the values of the fields to be included in the TSPEC object in the // Path Message sent for the LSP. - Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3,oneof" json:"tspec,omitempty"` + Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3" json:"tspec,omitempty"` // This contains the values of the fields to be included in the FAST_REROUTE object // in the Path Message sent for the LSP. // This is an optional object . If this attribute is not included , the FAST_REROUTE // object will not be included. - FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3,oneof" json:"fast_reroute,omitempty"` + FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3" json:"fast_reroute,omitempty"` // This contains the values of the fields to be included in the ERO object in the Path // Message sent for the LSP. // This is an optional object . If this attribute is not included , the ERO object will // not be included. - Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3,oneof" json:"ero,omitempty"` + Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3" json:"ero,omitempty"` } func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { @@ -30918,15 +30918,15 @@ func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { } func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { - if x != nil { - return x.RemoteAddress + if x != nil && x.RemoteAddress != nil { + return *x.RemoteAddress } return "" } @@ -31063,7 +31063,7 @@ type RsvpSessionAttribute struct { // using which further constraints can be // set on the path calculated for the LSP based on the Admin Group settings in the IGP // (e.g ISIS or OSPF interface). - ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3,oneof" json:"resource_affinities,omitempty"` + ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3" json:"resource_affinities,omitempty"` } func (x *RsvpSessionAttribute) Reset() { @@ -31712,17 +31712,17 @@ type Flow struct { // For all protocol headers, only the `metric_tags` property is configurable. EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` // The size of the packets. - Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3" json:"size,omitempty"` // The transmit rate of the packets. - Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3" json:"rate,omitempty"` // The transmit duration of the packets. - Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3,oneof" json:"duration,omitempty"` + Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` // Flow metrics. - Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3,oneof" json:"metrics,omitempty"` + Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3" json:"metrics,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Flow) Reset() { @@ -31807,8 +31807,8 @@ func (x *Flow) GetMetrics() *FlowMetrics { } func (x *Flow) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -31824,9 +31824,9 @@ type FlowTxRx struct { // default = Choice.Enum.port Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` // Description missing in models - Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3,oneof" json:"device,omitempty"` + Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` } func (x *FlowTxRx) Reset() { @@ -31905,7 +31905,7 @@ type FlowPort struct { // - /components/schemas/Lag/properties/name // // required = true - TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` + TxName *string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3,oneof" json:"tx_name,omitempty"` // Deprecated: This property is deprecated in favor of property rx_names // // Deprecated: This property is deprecated in favor of property rx_names @@ -31965,8 +31965,8 @@ func (*FlowPort) Descriptor() ([]byte, []int) { } func (x *FlowPort) GetTxName() string { - if x != nil { - return x.TxName + if x != nil && x.TxName != nil { + return *x.TxName } return "" } @@ -32149,43 +32149,43 @@ type FlowHeader struct { // default = Choice.Enum.ethernet Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` // Description missing in models - Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` + Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` // Description missing in models - Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` + Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` // Description missing in models - Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` + Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3" json:"vxlan,omitempty"` // Description missing in models - Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3" json:"ipv4,omitempty"` // Description missing in models - Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3" json:"ipv6,omitempty"` // Description missing in models - Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3,oneof" json:"pfcpause,omitempty"` + Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3" json:"pfcpause,omitempty"` // Description missing in models - Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3,oneof" json:"ethernetpause,omitempty"` + Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3" json:"ethernetpause,omitempty"` // Description missing in models - Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3,oneof" json:"tcp,omitempty"` + Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3" json:"tcp,omitempty"` // Description missing in models - Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3,oneof" json:"udp,omitempty"` + Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3" json:"udp,omitempty"` // Description missing in models - Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3,oneof" json:"gre,omitempty"` + Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3" json:"gre,omitempty"` // Description missing in models - Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3,oneof" json:"gtpv1,omitempty"` + Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3" json:"gtpv1,omitempty"` // Description missing in models - Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3,oneof" json:"gtpv2,omitempty"` + Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3" json:"gtpv2,omitempty"` // Description missing in models - Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3,oneof" json:"arp,omitempty"` + Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3" json:"arp,omitempty"` // Description missing in models - Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3,oneof" json:"icmp,omitempty"` + Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3" json:"icmp,omitempty"` // Description missing in models - Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3,oneof" json:"icmpv6,omitempty"` + Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3" json:"icmpv6,omitempty"` // Description missing in models - Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3,oneof" json:"ppp,omitempty"` + Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3" json:"ppp,omitempty"` // Description missing in models - Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3,oneof" json:"igmpv1,omitempty"` + Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3" json:"igmpv1,omitempty"` // Description missing in models - Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3,oneof" json:"mpls,omitempty"` + Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3" json:"mpls,omitempty"` } func (x *FlowHeader) Reset() { @@ -32370,7 +32370,7 @@ type FlowCustom struct { // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be // discarded. This packet header can be used in multiple places in the packet. // required = true - Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` + Bytes *string `protobuf:"bytes,1,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits // in a corresponding header field for metrics per each applicable value. // These would appear as tagged metrics in corresponding flow metrics. @@ -32410,8 +32410,8 @@ func (*FlowCustom) Descriptor() ([]byte, []int) { } func (x *FlowCustom) GetBytes() string { - if x != nil { - return x.Bytes + if x != nil && x.Bytes != nil { + return *x.Bytes } return "" } @@ -32434,7 +32434,7 @@ type FlowCustomMetricTag struct { // Name used to identify the metrics associated with the values applicable // for configured offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -32477,8 +32477,8 @@ func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { } func (x *FlowCustomMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -32504,13 +32504,13 @@ type FlowEthernet struct { unknownFields protoimpl.UnknownFields // Description missing in models - Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` // Description missing in models - PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` + PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` } func (x *FlowEthernet) Reset() { @@ -32580,13 +32580,13 @@ type FlowVlan struct { unknownFields protoimpl.UnknownFields // Description missing in models - Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` // Description missing in models - Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` + Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` // Description missing in models - Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` + Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` // Description missing in models - Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3" json:"tpid,omitempty"` } func (x *FlowVlan) Reset() { @@ -32656,13 +32656,13 @@ type FlowVxlan struct { unknownFields protoimpl.UnknownFields // Description missing in models - Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` // Description missing in models - Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` // Description missing in models - Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` + Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3" json:"vni,omitempty"` // Description missing in models - Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3" json:"reserved1,omitempty"` } func (x *FlowVxlan) Reset() { @@ -32732,33 +32732,33 @@ type FlowIpv4 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` + HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` // Description missing in models - Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` // Description missing in models - TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` + TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` // Description missing in models - Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` + Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` // Description missing in models - Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` + DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` // Description missing in models - MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` + MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` // Description missing in models - FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` + FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` // Description missing in models - TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` // Description missing in models - Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` // Description missing in models - HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` + HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` // Description missing in models - Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` } func (x *FlowIpv4) Reset() { @@ -32901,11 +32901,11 @@ type FlowIpv4Priority struct { // default = Choice.Enum.dscp Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3,oneof" json:"raw,omitempty"` + Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3" json:"raw,omitempty"` // Description missing in models - Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3,oneof" json:"tos,omitempty"` + Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3" json:"tos,omitempty"` // Description missing in models - Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3,oneof" json:"dscp,omitempty"` + Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3" json:"dscp,omitempty"` } func (x *FlowIpv4Priority) Reset() { @@ -32975,9 +32975,9 @@ type FlowIpv4Dscp struct { unknownFields protoimpl.UnknownFields // Description missing in models - Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3,oneof" json:"phb,omitempty"` + Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3" json:"phb,omitempty"` // Description missing in models - Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3,oneof" json:"ecn,omitempty"` + Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3" json:"ecn,omitempty"` } func (x *FlowIpv4Dscp) Reset() { @@ -33033,17 +33033,17 @@ type FlowIpv4Tos struct { unknownFields protoimpl.UnknownFields // Description missing in models - Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3,oneof" json:"precedence,omitempty"` + Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3" json:"precedence,omitempty"` // Description missing in models - Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` // Description missing in models - Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3,oneof" json:"throughput,omitempty"` + Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3" json:"throughput,omitempty"` // Description missing in models - Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3,oneof" json:"reliability,omitempty"` + Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3" json:"reliability,omitempty"` // Description missing in models - Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3,oneof" json:"monetary,omitempty"` + Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3" json:"monetary,omitempty"` // Description missing in models - Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3" json:"unused,omitempty"` } func (x *FlowIpv4Tos) Reset() { @@ -33127,21 +33127,21 @@ type FlowIpv6 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` // Description missing in models - FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` + FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` // Description missing in models - PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` + PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` // Description missing in models - NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` + NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` // Description missing in models - HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` // Description missing in models - Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` } func (x *FlowIpv6) Reset() { @@ -33239,31 +33239,31 @@ type FlowPfcPause struct { unknownFields protoimpl.UnknownFields // Description missing in models - Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` // Description missing in models - ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` // Description missing in models - ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3,oneof" json:"class_enable_vector,omitempty"` + ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3" json:"class_enable_vector,omitempty"` // Description missing in models - PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3,oneof" json:"pause_class_0,omitempty"` + PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3" json:"pause_class_0,omitempty"` // Description missing in models - PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3,oneof" json:"pause_class_1,omitempty"` + PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3" json:"pause_class_1,omitempty"` // Description missing in models - PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3,oneof" json:"pause_class_2,omitempty"` + PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3" json:"pause_class_2,omitempty"` // Description missing in models - PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3,oneof" json:"pause_class_3,omitempty"` + PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3" json:"pause_class_3,omitempty"` // Description missing in models - PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3,oneof" json:"pause_class_4,omitempty"` + PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3" json:"pause_class_4,omitempty"` // Description missing in models - PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3,oneof" json:"pause_class_5,omitempty"` + PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3" json:"pause_class_5,omitempty"` // Description missing in models - PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3,oneof" json:"pause_class_6,omitempty"` + PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3" json:"pause_class_6,omitempty"` // Description missing in models - PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3,oneof" json:"pause_class_7,omitempty"` + PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3" json:"pause_class_7,omitempty"` } func (x *FlowPfcPause) Reset() { @@ -33396,15 +33396,15 @@ type FlowEthernetPause struct { unknownFields protoimpl.UnknownFields // Description missing in models - Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` // Description missing in models - ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` // Description missing in models - Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3,oneof" json:"time,omitempty"` + Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"` } func (x *FlowEthernetPause) Reset() { @@ -33481,35 +33481,35 @@ type FlowTcp struct { unknownFields protoimpl.UnknownFields // Description missing in models - SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` // Description missing in models - DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` // Description missing in models - SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3,oneof" json:"seq_num,omitempty"` + SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` // Description missing in models - AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3,oneof" json:"ack_num,omitempty"` + AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3" json:"ack_num,omitempty"` // Description missing in models - DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3,oneof" json:"data_offset,omitempty"` + DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3" json:"data_offset,omitempty"` // Description missing in models - EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3,oneof" json:"ecn_ns,omitempty"` + EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3" json:"ecn_ns,omitempty"` // Description missing in models - EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3,oneof" json:"ecn_cwr,omitempty"` + EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3" json:"ecn_cwr,omitempty"` // Description missing in models - EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3,oneof" json:"ecn_echo,omitempty"` + EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3" json:"ecn_echo,omitempty"` // Description missing in models - CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3,oneof" json:"ctl_urg,omitempty"` + CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3" json:"ctl_urg,omitempty"` // Description missing in models - CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3,oneof" json:"ctl_ack,omitempty"` + CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3" json:"ctl_ack,omitempty"` // Description missing in models - CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3,oneof" json:"ctl_psh,omitempty"` + CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3" json:"ctl_psh,omitempty"` // Description missing in models - CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3,oneof" json:"ctl_rst,omitempty"` + CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3" json:"ctl_rst,omitempty"` // Description missing in models - CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3,oneof" json:"ctl_syn,omitempty"` + CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3" json:"ctl_syn,omitempty"` // Description missing in models - CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3,oneof" json:"ctl_fin,omitempty"` + CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3" json:"ctl_fin,omitempty"` // Description missing in models - Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3,oneof" json:"window,omitempty"` + Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3" json:"window,omitempty"` } func (x *FlowTcp) Reset() { @@ -33656,13 +33656,13 @@ type FlowUdp struct { unknownFields protoimpl.UnknownFields // Description missing in models - SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` // Description missing in models - DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` // Description missing in models - Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` } func (x *FlowUdp) Reset() { @@ -33732,17 +33732,17 @@ type FlowGre struct { unknownFields protoimpl.UnknownFields // Description missing in models - ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3,oneof" json:"checksum_present,omitempty"` + ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3" json:"checksum_present,omitempty"` // Description missing in models - Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` // Description missing in models - Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` // Description missing in models - Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` // Description missing in models - Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3" json:"reserved1,omitempty"` } func (x *FlowGre) Reset() { @@ -33826,29 +33826,29 @@ type FlowGtpv1 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` // Description missing in models - Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3,oneof" json:"e_flag,omitempty"` + EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3" json:"e_flag,omitempty"` // Description missing in models - SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"` // Description missing in models - PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3,oneof" json:"pn_flag,omitempty"` + PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3" json:"pn_flag,omitempty"` // Description missing in models - MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` // Description missing in models - MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` // Description missing in models - Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3" json:"teid,omitempty"` // Description missing in models - SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3,oneof" json:"squence_number,omitempty"` + SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3" json:"squence_number,omitempty"` // Description missing in models - NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3,oneof" json:"n_pdu_number,omitempty"` + NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3" json:"n_pdu_number,omitempty"` // Description missing in models - NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3,oneof" json:"next_extension_header_type,omitempty"` + NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3" json:"next_extension_header_type,omitempty"` // A list of optional extension headers. ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` } @@ -33983,11 +33983,11 @@ type FlowGtpExtension struct { unknownFields protoimpl.UnknownFields // Description missing in models - ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3,oneof" json:"extension_length,omitempty"` + ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3" json:"extension_length,omitempty"` // Description missing in models - Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"` + Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"` // Description missing in models - NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3,oneof" json:"next_extension_header,omitempty"` + NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3" json:"next_extension_header,omitempty"` } func (x *FlowGtpExtension) Reset() { @@ -34050,23 +34050,23 @@ type FlowGtpv2 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3,oneof" json:"piggybacking_flag,omitempty"` + PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3" json:"piggybacking_flag,omitempty"` // Description missing in models - TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3,oneof" json:"teid_flag,omitempty"` + TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3" json:"teid_flag,omitempty"` // Description missing in models - Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3,oneof" json:"spare1,omitempty"` + Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3" json:"spare1,omitempty"` // Description missing in models - MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` // Description missing in models - MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` // Description missing in models - Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3" json:"teid,omitempty"` // Description missing in models - SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` // Description missing in models - Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3,oneof" json:"spare2,omitempty"` + Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3" json:"spare2,omitempty"` } func (x *FlowGtpv2) Reset() { @@ -34171,23 +34171,23 @@ type FlowArp struct { unknownFields protoimpl.UnknownFields // Description missing in models - HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3,oneof" json:"hardware_type,omitempty"` + HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3" json:"hardware_type,omitempty"` // Description missing in models - ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` // Description missing in models - HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3,oneof" json:"hardware_length,omitempty"` + HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3" json:"hardware_length,omitempty"` // Description missing in models - ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3,oneof" json:"protocol_length,omitempty"` + ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3" json:"protocol_length,omitempty"` // Description missing in models - Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3,oneof" json:"operation,omitempty"` + Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3" json:"operation,omitempty"` // Description missing in models - SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3,oneof" json:"sender_hardware_addr,omitempty"` + SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3" json:"sender_hardware_addr,omitempty"` // Description missing in models - SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3,oneof" json:"sender_protocol_addr,omitempty"` + SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3" json:"sender_protocol_addr,omitempty"` // Description missing in models - TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3,oneof" json:"target_hardware_addr,omitempty"` + TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3" json:"target_hardware_addr,omitempty"` // Description missing in models - TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3,oneof" json:"target_protocol_addr,omitempty"` + TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3" json:"target_protocol_addr,omitempty"` } func (x *FlowArp) Reset() { @@ -34295,7 +34295,7 @@ type FlowIcmp struct { // default = Choice.Enum.echo Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` + Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` } func (x *FlowIcmp) Reset() { @@ -34351,15 +34351,15 @@ type FlowIcmpEcho struct { unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Description missing in models - Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3" json:"checksum,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3" json:"identifier,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` } func (x *FlowIcmpEcho) Reset() { @@ -34439,7 +34439,7 @@ type FlowIcmpv6 struct { // default = Choice.Enum.echo Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` + Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` } func (x *FlowIcmpv6) Reset() { @@ -34495,15 +34495,15 @@ type FlowIcmpv6Echo struct { unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Description missing in models - Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3" json:"identifier,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` } func (x *FlowIcmpv6Echo) Reset() { @@ -34580,11 +34580,11 @@ type FlowPpp struct { unknownFields protoimpl.UnknownFields // Description missing in models - Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // Description missing in models - Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3,oneof" json:"control,omitempty"` + Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3" json:"control,omitempty"` // Description missing in models - ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` } func (x *FlowPpp) Reset() { @@ -34647,15 +34647,15 @@ type FlowIgmpv1 struct { unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3,oneof" json:"type,omitempty"` + Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // Description missing in models - Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3" json:"unused,omitempty"` // Description missing in models - Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` // Description missing in models - GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3,oneof" json:"group_address,omitempty"` + GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3" json:"group_address,omitempty"` } func (x *FlowIgmpv1) Reset() { @@ -34733,13 +34733,13 @@ type FlowMpls struct { unknownFields protoimpl.UnknownFields // Description missing in models - Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` // Description missing in models - TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` // Description missing in models - BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3,oneof" json:"bottom_of_stack,omitempty"` + BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3" json:"bottom_of_stack,omitempty"` // Description missing in models - TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` } func (x *FlowMpls) Reset() { @@ -34815,11 +34815,11 @@ type FlowSize struct { // default = 64 Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` // Description missing in models - Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3,oneof" json:"random,omitempty"` + Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3" json:"random,omitempty"` // Description missing in models - WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3,oneof" json:"weight_pairs,omitempty"` + WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3" json:"weight_pairs,omitempty"` } func (x *FlowSize) Reset() { @@ -35285,13 +35285,13 @@ type FlowDuration struct { // default = Choice.Enum.continuous Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3,oneof" json:"fixed_packets,omitempty"` + FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3" json:"fixed_packets,omitempty"` // Description missing in models - FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3,oneof" json:"fixed_seconds,omitempty"` + FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3" json:"fixed_seconds,omitempty"` // Description missing in models - Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3,oneof" json:"burst,omitempty"` + Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3" json:"burst,omitempty"` // Description missing in models - Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3,oneof" json:"continuous,omitempty"` + Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3" json:"continuous,omitempty"` } func (x *FlowDuration) Reset() { @@ -35371,7 +35371,7 @@ type FlowContinuous struct { // default = 12 Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` } func (x *FlowContinuous) Reset() { @@ -35517,7 +35517,7 @@ type FlowFixedPackets struct { // default = 12 Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` } func (x *FlowFixedPackets) Reset() { @@ -35586,7 +35586,7 @@ type FlowFixedSeconds struct { // default = 12 Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` } func (x *FlowFixedSeconds) Reset() { @@ -35661,7 +35661,7 @@ type FlowBurst struct { // default = 12 Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3,oneof" json:"inter_burst_gap,omitempty"` + InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3" json:"inter_burst_gap,omitempty"` } func (x *FlowBurst) Reset() { @@ -35822,14 +35822,14 @@ type FlowMetrics struct { // default = False Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` // Rx Tx ratio. - RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3,oneof" json:"rx_tx_ratio,omitempty"` + RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3" json:"rx_tx_ratio,omitempty"` // Enables additional flow metric first and last timestamps. // default = False Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` // Latency metrics. - Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3" json:"latency,omitempty"` // Predefined metric tags - PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3,oneof" json:"predefined_metric_tags,omitempty"` + PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3" json:"predefined_metric_tags,omitempty"` } func (x *FlowMetrics) Reset() { @@ -36050,7 +36050,7 @@ type FlowRxTxRatio struct { // default = Choice.Enum.value Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3,oneof" json:"rx_count,omitempty"` + RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3" json:"rx_count,omitempty"` // Should be a positive, non-zero value. The default value of 1, is when the Rx packet // count across // all ports is expected to match the Tx packet count. A custom integer value (>1) can @@ -36172,11 +36172,11 @@ type Event struct { // default = False Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` // Description missing in models - RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3,oneof" json:"rx_rate_threshold,omitempty"` + RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3" json:"rx_rate_threshold,omitempty"` // Description missing in models - RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3,oneof" json:"route_advertise_withdraw,omitempty"` + RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3" json:"route_advertise_withdraw,omitempty"` } func (x *Event) Reset() { @@ -36481,7 +36481,7 @@ type EventSubscription struct { unknownFields protoimpl.UnknownFields // Description missing in models - Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3,oneof" json:"events,omitempty"` + Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3" json:"events,omitempty"` // Indicates where a client wants to be notified of the events set in // the events property. // If this property is empty or null then no event notifications will @@ -36547,16 +36547,16 @@ type Lldp struct { // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint // identifier associated with the transmitting LLDP agent. If mac address is specified // it should be in colon seperated mac address format. - ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3" json:"chassis_id,omitempty"` // The Port ID is a mandatory TLV which identifies the port component of the endpoint // identifier associated with the transmitting LLDP agent. If the specified port is // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` // The system name field shall contain an alpha-numeric string that indicates the system's // administratively assigned name. The system name should be the system's fully qualified // domain name. If implementations support IETF RFC 3418, the sysName object should // be used for this field. - SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3" json:"system_name,omitempty"` // Specifies the amount of time in seconds a receiving device should maintain LLDP information // sent by the device before discarding it. // default = 120 @@ -36567,7 +36567,7 @@ type Lldp struct { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` } func (x *Lldp) Reset() { @@ -36645,8 +36645,8 @@ func (x *Lldp) GetAdvertisementInterval() uint32 { } func (x *Lldp) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -36729,7 +36729,7 @@ type LldpChassisId struct { // default = Choice.Enum.mac_address_subtype Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` + MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3" json:"mac_address_subtype,omitempty"` // Name of an interface of the chassis that uniquely identifies the chassis. InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` // Locally assigned name of the chassis. @@ -36811,7 +36811,7 @@ type LldpPortId struct { // The MAC Address configured in the Port ID TLV. MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` // Description missing in models - InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3" json:"interface_name_subtype,omitempty"` // The Locally assigned name configured in the Port ID TLV. LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } @@ -37095,7 +37095,7 @@ type Error struct { // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // required = true - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Code *int32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` // Classification of error originating from within API server that may not be mapped // to the value in `code`. // Absence of this field may indicate that the error did not originate from within API @@ -37138,8 +37138,8 @@ func (*Error) Descriptor() ([]byte, []int) { } func (x *Error) GetCode() int32 { - if x != nil { - return x.Code + if x != nil && x.Code != nil { + return *x.Code } return 0 } @@ -37217,7 +37217,7 @@ type ConfigUpdate struct { // Description missing in models Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3,oneof" json:"flows,omitempty"` + Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"` } func (x *ConfigUpdate) Reset() { @@ -37333,13 +37333,13 @@ type ControlState struct { // Description missing in models // required = true - Choice ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum" json:"choice,omitempty"` + Choice *ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` // Description missing in models - Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"` // Description missing in models - Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3,oneof" json:"traffic,omitempty"` + Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` } func (x *ControlState) Reset() { @@ -37375,8 +37375,8 @@ func (*ControlState) Descriptor() ([]byte, []int) { } func (x *ControlState) GetChoice() ControlState_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ControlState_Choice_unspecified } @@ -37410,11 +37410,11 @@ type StatePort struct { // Description missing in models // required = true - Choice StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum" json:"choice,omitempty"` + Choice *StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` // Description missing in models - Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3,oneof" json:"capture,omitempty"` + Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3" json:"capture,omitempty"` } func (x *StatePort) Reset() { @@ -37450,8 +37450,8 @@ func (*StatePort) Descriptor() ([]byte, []int) { } func (x *StatePort) GetChoice() StatePort_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return StatePort_Choice_unspecified } @@ -37478,9 +37478,9 @@ type StateTraffic struct { // Description missing in models // required = true - Choice StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum" json:"choice,omitempty"` + Choice *StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3,oneof" json:"flow_transmit,omitempty"` + FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3" json:"flow_transmit,omitempty"` } func (x *StateTraffic) Reset() { @@ -37516,8 +37516,8 @@ func (*StateTraffic) Descriptor() ([]byte, []int) { } func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return StateTraffic_Choice_unspecified } @@ -37537,13 +37537,13 @@ type StateProtocol struct { // Description missing in models // required = true - Choice StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum" json:"choice,omitempty"` + Choice *StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3,oneof" json:"all,omitempty"` + All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3" json:"all,omitempty"` // Description missing in models - Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3,oneof" json:"route,omitempty"` + Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3" json:"route,omitempty"` // Description missing in models - Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3" json:"lacp,omitempty"` } func (x *StateProtocol) Reset() { @@ -37579,8 +37579,8 @@ func (*StateProtocol) Descriptor() ([]byte, []int) { } func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return StateProtocol_Choice_unspecified } @@ -37622,7 +37622,7 @@ type StatePortLink struct { PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The link state. // required = true - State StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum" json:"state,omitempty"` + State *StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum,oneof" json:"state,omitempty"` } func (x *StatePortLink) Reset() { @@ -37665,8 +37665,8 @@ func (x *StatePortLink) GetPortNames() []string { } func (x *StatePortLink) GetState() StatePortLink_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StatePortLink_State_unspecified } @@ -37690,7 +37690,7 @@ type StatePortCapture struct { PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The capture state. // required = true - State StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum" json:"state,omitempty"` + State *StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum,oneof" json:"state,omitempty"` } func (x *StatePortCapture) Reset() { @@ -37733,8 +37733,8 @@ func (x *StatePortCapture) GetPortNames() []string { } func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StatePortCapture_State_unspecified } @@ -37769,7 +37769,7 @@ type StateTrafficFlowTransmit struct { // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) // MUST NOT have their metric counters cleared. // required = true - State StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum" json:"state,omitempty"` + State *StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum,oneof" json:"state,omitempty"` } func (x *StateTrafficFlowTransmit) Reset() { @@ -37812,8 +37812,8 @@ func (x *StateTrafficFlowTransmit) GetFlowNames() []string { } func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StateTrafficFlowTransmit_State_unspecified } @@ -37829,7 +37829,7 @@ type StateProtocolAll struct { // Protocol states // required = true - State StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum" json:"state,omitempty"` + State *StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum,oneof" json:"state,omitempty"` } func (x *StateProtocolAll) Reset() { @@ -37865,8 +37865,8 @@ func (*StateProtocolAll) Descriptor() ([]byte, []int) { } func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StateProtocolAll_State_unspecified } @@ -37894,7 +37894,7 @@ type StateProtocolRoute struct { Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` // Route states // required = true - State StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum" json:"state,omitempty"` + State *StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum,oneof" json:"state,omitempty"` } func (x *StateProtocolRoute) Reset() { @@ -37937,8 +37937,8 @@ func (x *StateProtocolRoute) GetNames() []string { } func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StateProtocolRoute_State_unspecified } @@ -37951,9 +37951,9 @@ type StateProtocolLacp struct { // Description missing in models // required = true - Choice StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum" json:"choice,omitempty"` + Choice *StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3,oneof" json:"admin,omitempty"` + Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3" json:"admin,omitempty"` } func (x *StateProtocolLacp) Reset() { @@ -37989,8 +37989,8 @@ func (*StateProtocolLacp) Descriptor() ([]byte, []int) { } func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return StateProtocolLacp_Choice_unspecified } @@ -38021,7 +38021,7 @@ type StateProtocolLacpAdmin struct { // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member // ports. // required = true - State StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum" json:"state,omitempty"` + State *StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum,oneof" json:"state,omitempty"` } func (x *StateProtocolLacpAdmin) Reset() { @@ -38064,8 +38064,8 @@ func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { } func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { - if x != nil { - return x.State + if x != nil && x.State != nil { + return *x.State } return StateProtocolLacpAdmin_State_unspecified } @@ -38078,9 +38078,9 @@ type ControlAction struct { // Description missing in models // required = true - Choice ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum" json:"choice,omitempty"` + Choice *ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` } func (x *ControlAction) Reset() { @@ -38116,8 +38116,8 @@ func (*ControlAction) Descriptor() ([]byte, []int) { } func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ControlAction_Choice_unspecified } @@ -38138,7 +38138,7 @@ type ControlActionResponse struct { // List of warnings generated while triggering specified action Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` // Description missing in models - Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof" json:"response,omitempty"` + Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` } func (x *ControlActionResponse) Reset() { @@ -38195,9 +38195,9 @@ type ActionResponse struct { // Description missing in models // required = true - Choice ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum" json:"choice,omitempty"` + Choice *ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` } func (x *ActionResponse) Reset() { @@ -38233,8 +38233,8 @@ func (*ActionResponse) Descriptor() ([]byte, []int) { } func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionResponse_Choice_unspecified } @@ -38254,13 +38254,13 @@ type ActionProtocol struct { // Description missing in models // required = true - Choice ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum" json:"choice,omitempty"` + Choice *ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` // Description missing in models - Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` // Description missing in models - Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` + Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3" json:"bgp,omitempty"` } func (x *ActionProtocol) Reset() { @@ -38296,8 +38296,8 @@ func (*ActionProtocol) Descriptor() ([]byte, []int) { } func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionProtocol_Choice_unspecified } @@ -38331,11 +38331,11 @@ type ActionResponseProtocol struct { // Description missing in models // required = true - Choice ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum" json:"choice,omitempty"` + Choice *ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` // Description missing in models - Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` } func (x *ActionResponseProtocol) Reset() { @@ -38371,8 +38371,8 @@ func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { } func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionResponseProtocol_Choice_unspecified } @@ -38399,9 +38399,9 @@ type ActionProtocolIpv4 struct { // Description missing in models // required = true - Choice ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + Choice *ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } func (x *ActionProtocolIpv4) Reset() { @@ -38437,8 +38437,8 @@ func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { } func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionProtocolIpv4_Choice_unspecified } @@ -38458,9 +38458,9 @@ type ActionResponseProtocolIpv4 struct { // Description missing in models // required = true - Choice ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + Choice *ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } func (x *ActionResponseProtocolIpv4) Reset() { @@ -38496,8 +38496,8 @@ func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { } func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionResponseProtocolIpv4_Choice_unspecified } @@ -38692,13 +38692,13 @@ type ActionResponseProtocolIpv4PingResponse struct { // - /components/schemas/Device.Ipv4/properties/name // // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // Destination IPv4 address used for ping. // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` // Result of the ping request. // required = true - Result ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum" json:"result,omitempty"` + Result *ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum,oneof" json:"result,omitempty"` } func (x *ActionResponseProtocolIpv4PingResponse) Reset() { @@ -38734,22 +38734,22 @@ func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { } func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { - if x != nil { - return x.SrcName + if x != nil && x.SrcName != nil { + return *x.SrcName } return "" } func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { - if x != nil { - return x.DstIp + if x != nil && x.DstIp != nil { + return *x.DstIp } return "" } func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { - if x != nil { - return x.Result + if x != nil && x.Result != nil { + return *x.Result } return ActionResponseProtocolIpv4PingResponse_Result_unspecified } @@ -38762,9 +38762,9 @@ type ActionProtocolIpv6 struct { // Description missing in models // required = true - Choice ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + Choice *ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } func (x *ActionProtocolIpv6) Reset() { @@ -38800,8 +38800,8 @@ func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { } func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionProtocolIpv6_Choice_unspecified } @@ -38821,9 +38821,9 @@ type ActionResponseProtocolIpv6 struct { // Description missing in models // required = true - Choice ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + Choice *ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } func (x *ActionResponseProtocolIpv6) Reset() { @@ -38859,8 +38859,8 @@ func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { } func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionResponseProtocolIpv6_Choice_unspecified } @@ -39055,13 +39055,13 @@ type ActionResponseProtocolIpv6PingResponse struct { // - /components/schemas/Device.Ipv6/properties/name // // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // Destination IPv6 address used for ping. // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` // Result of the ping request. // required = true - Result ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum" json:"result,omitempty"` + Result *ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum,oneof" json:"result,omitempty"` } func (x *ActionResponseProtocolIpv6PingResponse) Reset() { @@ -39097,22 +39097,22 @@ func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { } func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { - if x != nil { - return x.SrcName + if x != nil && x.SrcName != nil { + return *x.SrcName } return "" } func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { - if x != nil { - return x.DstIp + if x != nil && x.DstIp != nil { + return *x.DstIp } return "" } func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { - if x != nil { - return x.Result + if x != nil && x.Result != nil { + return *x.Result } return ActionResponseProtocolIpv6PingResponse_Result_unspecified } @@ -39125,11 +39125,11 @@ type ActionProtocolBgp struct { // Description missing in models // required = true - Choice ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum" json:"choice,omitempty"` + Choice *ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3,oneof" json:"notification,omitempty"` + Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3" json:"notification,omitempty"` // Description missing in models - InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3,oneof" json:"initiate_graceful_restart,omitempty"` + InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3" json:"initiate_graceful_restart,omitempty"` } func (x *ActionProtocolBgp) Reset() { @@ -39165,8 +39165,8 @@ func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { } func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { - if x != nil { - return x.Choice + if x != nil && x.Choice != nil { + return *x.Choice } return ActionProtocolBgp_Choice_unspecified } @@ -39215,19 +39215,19 @@ type ActionProtocolBgpNotification struct { // default = Choice.Enum.cease Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3,oneof" json:"cease,omitempty"` + Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3" json:"cease,omitempty"` // Description missing in models - MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3,oneof" json:"message_header_error,omitempty"` + MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3" json:"message_header_error,omitempty"` // Description missing in models - OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3,oneof" json:"open_message_error,omitempty"` + OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3" json:"open_message_error,omitempty"` // Description missing in models - UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3,oneof" json:"update_message_error,omitempty"` + UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3" json:"update_message_error,omitempty"` // Description missing in models - HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3,oneof" json:"hold_timer_expired,omitempty"` + HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3" json:"hold_timer_expired,omitempty"` // Description missing in models - FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3,oneof" json:"finite_state_machine_error,omitempty"` + FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3" json:"finite_state_machine_error,omitempty"` // Description missing in models - Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3" json:"custom,omitempty"` } func (x *ActionProtocolBgpNotification) Reset() { @@ -39403,23 +39403,23 @@ type MetricsRequest struct { // default = Choice.Enum.port Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` // Description missing in models - Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3,oneof" json:"flow,omitempty"` + Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3" json:"flow,omitempty"` // Description missing in models - Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3,oneof" json:"bgpv4,omitempty"` + Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3" json:"bgpv4,omitempty"` // Description missing in models - Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3,oneof" json:"bgpv6,omitempty"` + Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3" json:"bgpv6,omitempty"` // Description missing in models - Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3,oneof" json:"isis,omitempty"` + Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3" json:"isis,omitempty"` // Description missing in models - Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3,oneof" json:"lag,omitempty"` + Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3" json:"lag,omitempty"` // Description missing in models - Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3" json:"lacp,omitempty"` // Description missing in models - Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3,oneof" json:"lldp,omitempty"` + Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3" json:"lldp,omitempty"` // Description missing in models - Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` + Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3" json:"rsvp,omitempty"` } func (x *MetricsRequest) Reset() { @@ -39905,7 +39905,7 @@ type FlowMetricsRequest struct { // empty then all metrics will be returned. MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` // Description missing in models - TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3,oneof" json:"tagged_metrics,omitempty"` + TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } func (x *FlowMetricsRequest) Reset() { @@ -40133,9 +40133,9 @@ type FlowMetric struct { // The percentage of lost frames Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3" json:"timestamps,omitempty"` // Description missing in models - Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3" json:"latency,omitempty"` // List of metrics corresponding to a set of values applicable // for configured metric tags in ingress or egress packet header fields of corresponding // flow. @@ -40298,9 +40298,9 @@ type FlowTaggedMetric struct { // The percentage of lost frames Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3" json:"timestamps,omitempty"` // Description missing in models - Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3" json:"latency,omitempty"` } func (x *FlowTaggedMetric) Reset() { @@ -40414,7 +40414,7 @@ type FlowMetricTag struct { // Name of packet field metric tag Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Description missing in models - Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *FlowMetricTag) Reset() { @@ -42634,17 +42634,17 @@ type StatesRequest struct { // default = Choice.Enum.ipv4_neighbors Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3,oneof" json:"ipv4_neighbors,omitempty"` + Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` // Description missing in models - Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3,oneof" json:"ipv6_neighbors,omitempty"` + Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` // Description missing in models - BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3,oneof" json:"bgp_prefixes,omitempty"` + BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` // Description missing in models - IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3,oneof" json:"isis_lsps,omitempty"` + IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` // Description missing in models - LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3,oneof" json:"lldp_neighbors,omitempty"` + LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` // Description missing in models - RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3,oneof" json:"rsvp_lsps,omitempty"` + RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` } func (x *StatesRequest) Reset() { @@ -42898,10 +42898,10 @@ type Neighborsv4State struct { // The name of the Ethernet interface associated with the Neighbor state (ARP cache // entry). // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` // The IPv4 address of the neighbor. // required = true - Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` // The link-layer address (MAC) of the neighbor. LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } @@ -42939,15 +42939,15 @@ func (*Neighborsv4State) Descriptor() ([]byte, []int) { } func (x *Neighborsv4State) GetEthernetName() string { - if x != nil { - return x.EthernetName + if x != nil && x.EthernetName != nil { + return *x.EthernetName } return "" } func (x *Neighborsv4State) GetIpv4Address() string { - if x != nil { - return x.Ipv4Address + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } @@ -43025,10 +43025,10 @@ type Neighborsv6State struct { // The name of the Ethernet interface associated with the Neighbor state (NDISC cache // entry). // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` // The IPv6 address of the neighbor. // required = true - Ipv6Address string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3" json:"ipv6_address,omitempty"` + Ipv6Address *string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` // The link-layer address (MAC) of the neighbor. LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } @@ -43066,15 +43066,15 @@ func (*Neighborsv6State) Descriptor() ([]byte, []int) { } func (x *Neighborsv6State) GetEthernetName() string { - if x != nil { - return x.EthernetName + if x != nil && x.EthernetName != nil { + return *x.EthernetName } return "" } func (x *Neighborsv6State) GetIpv6Address() string { - if x != nil { - return x.Ipv6Address + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } return "" } @@ -43421,7 +43421,7 @@ type BgpPrefixIpv4UnicastState struct { // Optional community attributes. Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // The local preference is a well-known attribute and the value is used for route selection. // The route with the highest local preference value is preferred. LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` @@ -43553,7 +43553,7 @@ type BgpPrefixIpv6UnicastState struct { // Optional community attributes. Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // The local preference is a well-known attribute and the value is used for route selection. // The route with the highest local preference value is preferred. LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` @@ -43977,7 +43977,7 @@ type IsisLspState struct { // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. // Then the sequence number is incremented by 1. // required = true - LspId string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` + LspId *string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` // Link State PDU type. PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` // Remaining lifetime in seconds before LSP expires. @@ -43987,14 +43987,14 @@ type IsisLspState struct { // Total length of the LSP. PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` // LSP Type-Block flags. - Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3" json:"flags,omitempty"` // IS Type - bits 1 and 2 indicate the type of Intermediate System. // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. // 2 - Unused value. // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` // It refers to Link State PDU State TLVs container. - Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3,oneof" json:"tlvs,omitempty"` + Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3" json:"tlvs,omitempty"` } func (x *IsisLspState) Reset() { @@ -44030,8 +44030,8 @@ func (*IsisLspState) Descriptor() ([]byte, []int) { } func (x *IsisLspState) GetLspId() string { - if x != nil { - return x.LspId + if x != nil && x.LspId != nil { + return *x.LspId } return "" } @@ -44749,7 +44749,7 @@ type IsisLspExtendedV4Prefix struct { // (L1). RedistributionType *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` } func (x *IsisLspExtendedV4Prefix) Reset() { @@ -44894,7 +44894,7 @@ type IsisLspV6Prefix struct { // 1 LSPs. OriginType *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` } func (x *IsisLspV6Prefix) Reset() { @@ -45567,7 +45567,7 @@ type RsvpIPv4LspState struct { // The IPv4 destination address of RSVP session. DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` // It refers to the RSVP LSP properties. - Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3,oneof" json:"lsp,omitempty"` + Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3" json:"lsp,omitempty"` // It refers to RSVP RRO objects container. Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` // It refers to RSVP ERO objects container. @@ -45909,7 +45909,7 @@ type CaptureRequest struct { // - /components/schemas/Port/properties/name // // required = true - PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` + PortName *string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` } func (x *CaptureRequest) Reset() { @@ -45945,8 +45945,8 @@ func (*CaptureRequest) Descriptor() ([]byte, []int) { } func (x *CaptureRequest) GetPortName() string { - if x != nil { - return x.PortName + if x != nil && x.PortName != nil { + return *x.PortName } return "" } @@ -46032,7 +46032,7 @@ type PatternFlowEthernetDstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -46075,8 +46075,8 @@ func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetDstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -46116,9 +46116,9 @@ type PatternFlowEthernetDst struct { // default = 00:00:00:00:00:00 Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -46287,7 +46287,7 @@ type PatternFlowEthernetSrcMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -46330,8 +46330,8 @@ func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetSrcMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -46366,9 +46366,9 @@ type PatternFlowEthernetSrc struct { // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -46530,7 +46530,7 @@ type PatternFlowEthernetEtherTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -46573,8 +46573,8 @@ func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -46614,9 +46614,9 @@ type PatternFlowEthernetEtherType struct { // default = 65535 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -46785,7 +46785,7 @@ type PatternFlowEthernetPfcQueueMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -46828,8 +46828,8 @@ func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -46864,9 +46864,9 @@ type PatternFlowEthernetPfcQueue struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -47028,7 +47028,7 @@ type PatternFlowVlanPriorityMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -47071,8 +47071,8 @@ func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVlanPriorityMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -47107,9 +47107,9 @@ type PatternFlowVlanPriority struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -47271,7 +47271,7 @@ type PatternFlowVlanCfiMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -47314,8 +47314,8 @@ func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVlanCfiMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -47350,9 +47350,9 @@ type PatternFlowVlanCfi struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -47514,7 +47514,7 @@ type PatternFlowVlanIdMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -47557,8 +47557,8 @@ func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVlanIdMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -47593,9 +47593,9 @@ type PatternFlowVlanId struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -47757,7 +47757,7 @@ type PatternFlowVlanTpidMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -47800,8 +47800,8 @@ func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVlanTpidMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -47836,9 +47836,9 @@ type PatternFlowVlanTpid struct { // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -48000,7 +48000,7 @@ type PatternFlowVxlanFlagsMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -48043,8 +48043,8 @@ func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -48081,9 +48081,9 @@ type PatternFlowVxlanFlags struct { // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -48245,7 +48245,7 @@ type PatternFlowVxlanReserved0MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -48288,8 +48288,8 @@ func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -48324,9 +48324,9 @@ type PatternFlowVxlanReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -48488,7 +48488,7 @@ type PatternFlowVxlanVniMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -48531,8 +48531,8 @@ func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVxlanVniMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -48572,9 +48572,9 @@ type PatternFlowVxlanVni struct { // default = 0 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -48743,7 +48743,7 @@ type PatternFlowVxlanReserved1MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -48786,8 +48786,8 @@ func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -48822,9 +48822,9 @@ type PatternFlowVxlanReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -48986,7 +48986,7 @@ type PatternFlowIpv4VersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -49029,8 +49029,8 @@ func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4VersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -49065,9 +49065,9 @@ type PatternFlowIpv4Version struct { // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -49229,7 +49229,7 @@ type PatternFlowIpv4HeaderLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -49272,8 +49272,8 @@ func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -49313,9 +49313,9 @@ type PatternFlowIpv4HeaderLength struct { // default = 5 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -49484,7 +49484,7 @@ type PatternFlowIpv4TotalLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -49527,8 +49527,8 @@ func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -49568,9 +49568,9 @@ type PatternFlowIpv4TotalLength struct { // default = 46 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -49739,7 +49739,7 @@ type PatternFlowIpv4IdentificationMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -49782,8 +49782,8 @@ func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -49818,9 +49818,9 @@ type PatternFlowIpv4Identification struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -49982,7 +49982,7 @@ type PatternFlowIpv4ReservedMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -50025,8 +50025,8 @@ func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -50061,9 +50061,9 @@ type PatternFlowIpv4Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -50225,7 +50225,7 @@ type PatternFlowIpv4DontFragmentMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -50268,8 +50268,8 @@ func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -50305,9 +50305,9 @@ type PatternFlowIpv4DontFragment struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -50469,7 +50469,7 @@ type PatternFlowIpv4MoreFragmentsMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -50512,8 +50512,8 @@ func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -50548,9 +50548,9 @@ type PatternFlowIpv4MoreFragments struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -50712,7 +50712,7 @@ type PatternFlowIpv4FragmentOffsetMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -50755,8 +50755,8 @@ func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -50791,9 +50791,9 @@ type PatternFlowIpv4FragmentOffset struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -50955,7 +50955,7 @@ type PatternFlowIpv4TimeToLiveMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -50998,8 +50998,8 @@ func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -51034,9 +51034,9 @@ type PatternFlowIpv4TimeToLive struct { // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -51198,7 +51198,7 @@ type PatternFlowIpv4ProtocolMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -51241,8 +51241,8 @@ func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -51282,9 +51282,9 @@ type PatternFlowIpv4Protocol struct { // default = 61 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -51522,7 +51522,7 @@ type PatternFlowIpv4SrcMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -51565,8 +51565,8 @@ func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4SrcMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -51601,9 +51601,9 @@ type PatternFlowIpv4Src struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -51765,7 +51765,7 @@ type PatternFlowIpv4DstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -51808,8 +51808,8 @@ func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4DstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -51844,9 +51844,9 @@ type PatternFlowIpv4Dst struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -52008,7 +52008,7 @@ type PatternFlowIpv4PriorityRawMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -52051,8 +52051,8 @@ func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -52087,9 +52087,9 @@ type PatternFlowIpv4PriorityRaw struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -52251,7 +52251,7 @@ type PatternFlowIpv4DscpPhbMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -52294,8 +52294,8 @@ func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -52330,9 +52330,9 @@ type PatternFlowIpv4DscpPhb struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -52494,7 +52494,7 @@ type PatternFlowIpv4DscpEcnMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -52537,8 +52537,8 @@ func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -52573,9 +52573,9 @@ type PatternFlowIpv4DscpEcn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -52737,7 +52737,7 @@ type PatternFlowIpv4TosPrecedenceMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -52780,8 +52780,8 @@ func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -52816,9 +52816,9 @@ type PatternFlowIpv4TosPrecedence struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -52980,7 +52980,7 @@ type PatternFlowIpv4TosDelayMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -53023,8 +53023,8 @@ func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -53059,9 +53059,9 @@ type PatternFlowIpv4TosDelay struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -53223,7 +53223,7 @@ type PatternFlowIpv4TosThroughputMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -53266,8 +53266,8 @@ func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -53302,9 +53302,9 @@ type PatternFlowIpv4TosThroughput struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -53466,7 +53466,7 @@ type PatternFlowIpv4TosReliabilityMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -53509,8 +53509,8 @@ func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -53545,9 +53545,9 @@ type PatternFlowIpv4TosReliability struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -53709,7 +53709,7 @@ type PatternFlowIpv4TosMonetaryMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -53752,8 +53752,8 @@ func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -53788,9 +53788,9 @@ type PatternFlowIpv4TosMonetary struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -53952,7 +53952,7 @@ type PatternFlowIpv4TosUnusedMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -53995,8 +53995,8 @@ func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -54031,9 +54031,9 @@ type PatternFlowIpv4TosUnused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -54195,7 +54195,7 @@ type PatternFlowIpv6VersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -54238,8 +54238,8 @@ func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6VersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -54274,9 +54274,9 @@ type PatternFlowIpv6Version struct { // default = [6] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -54438,7 +54438,7 @@ type PatternFlowIpv6TrafficClassMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -54481,8 +54481,8 @@ func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -54517,9 +54517,9 @@ type PatternFlowIpv6TrafficClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -54681,7 +54681,7 @@ type PatternFlowIpv6FlowLabelMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -54724,8 +54724,8 @@ func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -54760,9 +54760,9 @@ type PatternFlowIpv6FlowLabel struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -54924,7 +54924,7 @@ type PatternFlowIpv6PayloadLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -54967,8 +54967,8 @@ func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -55008,9 +55008,9 @@ type PatternFlowIpv6PayloadLength struct { // default = 0 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -55179,7 +55179,7 @@ type PatternFlowIpv6NextHeaderMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -55222,8 +55222,8 @@ func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -55263,9 +55263,9 @@ type PatternFlowIpv6NextHeader struct { // default = 59 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -55434,7 +55434,7 @@ type PatternFlowIpv6HopLimitMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -55477,8 +55477,8 @@ func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -55513,9 +55513,9 @@ type PatternFlowIpv6HopLimit struct { // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -55677,7 +55677,7 @@ type PatternFlowIpv6SrcMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -55720,8 +55720,8 @@ func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6SrcMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -55756,9 +55756,9 @@ type PatternFlowIpv6Src struct { // default = ['::0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -55920,7 +55920,7 @@ type PatternFlowIpv6DstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -55963,8 +55963,8 @@ func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIpv6DstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -55999,9 +55999,9 @@ type PatternFlowIpv6Dst struct { // default = ['::0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -56163,7 +56163,7 @@ type PatternFlowPfcPauseDstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -56206,8 +56206,8 @@ func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -56242,9 +56242,9 @@ type PatternFlowPfcPauseDst struct { // default = ['01:80:c2:00:00:01'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -56406,7 +56406,7 @@ type PatternFlowPfcPauseSrcMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -56449,8 +56449,8 @@ func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -56485,9 +56485,9 @@ type PatternFlowPfcPauseSrc struct { // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -56649,7 +56649,7 @@ type PatternFlowPfcPauseEtherTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -56692,8 +56692,8 @@ func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -56728,9 +56728,9 @@ type PatternFlowPfcPauseEtherType struct { // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -56892,7 +56892,7 @@ type PatternFlowPfcPauseControlOpCodeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -56935,8 +56935,8 @@ func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -56971,9 +56971,9 @@ type PatternFlowPfcPauseControlOpCode struct { // default = [257] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -57135,7 +57135,7 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -57178,8 +57178,8 @@ func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []in } func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -57214,9 +57214,9 @@ type PatternFlowPfcPauseClassEnableVector struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -57378,7 +57378,7 @@ type PatternFlowPfcPausePauseClass0MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -57421,8 +57421,8 @@ func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -57457,9 +57457,9 @@ type PatternFlowPfcPausePauseClass0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -57621,7 +57621,7 @@ type PatternFlowPfcPausePauseClass1MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -57664,8 +57664,8 @@ func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -57700,9 +57700,9 @@ type PatternFlowPfcPausePauseClass1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -57864,7 +57864,7 @@ type PatternFlowPfcPausePauseClass2MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -57907,8 +57907,8 @@ func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -57943,9 +57943,9 @@ type PatternFlowPfcPausePauseClass2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -58107,7 +58107,7 @@ type PatternFlowPfcPausePauseClass3MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -58150,8 +58150,8 @@ func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -58186,9 +58186,9 @@ type PatternFlowPfcPausePauseClass3 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -58350,7 +58350,7 @@ type PatternFlowPfcPausePauseClass4MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -58393,8 +58393,8 @@ func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -58429,9 +58429,9 @@ type PatternFlowPfcPausePauseClass4 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -58593,7 +58593,7 @@ type PatternFlowPfcPausePauseClass5MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -58636,8 +58636,8 @@ func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -58672,9 +58672,9 @@ type PatternFlowPfcPausePauseClass5 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -58836,7 +58836,7 @@ type PatternFlowPfcPausePauseClass6MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -58879,8 +58879,8 @@ func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -58915,9 +58915,9 @@ type PatternFlowPfcPausePauseClass6 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -59079,7 +59079,7 @@ type PatternFlowPfcPausePauseClass7MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -59122,8 +59122,8 @@ func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -59158,9 +59158,9 @@ type PatternFlowPfcPausePauseClass7 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -59322,7 +59322,7 @@ type PatternFlowEthernetPauseDstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -59365,8 +59365,8 @@ func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -59401,9 +59401,9 @@ type PatternFlowEthernetPauseDst struct { // default = ['01:80:c2:00:00:01'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -59565,7 +59565,7 @@ type PatternFlowEthernetPauseSrcMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -59608,8 +59608,8 @@ func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -59644,9 +59644,9 @@ type PatternFlowEthernetPauseSrc struct { // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -59808,7 +59808,7 @@ type PatternFlowEthernetPauseEtherTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -59851,8 +59851,8 @@ func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) } func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -59887,9 +59887,9 @@ type PatternFlowEthernetPauseEtherType struct { // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -60051,7 +60051,7 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -60094,8 +60094,8 @@ func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []i } func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -60130,9 +60130,9 @@ type PatternFlowEthernetPauseControlOpCode struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -60294,7 +60294,7 @@ type PatternFlowEthernetPauseTimeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -60337,8 +60337,8 @@ func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -60373,9 +60373,9 @@ type PatternFlowEthernetPauseTime struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -60537,7 +60537,7 @@ type PatternFlowTcpSrcPortMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -60580,8 +60580,8 @@ func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -60616,9 +60616,9 @@ type PatternFlowTcpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -60780,7 +60780,7 @@ type PatternFlowTcpDstPortMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -60823,8 +60823,8 @@ func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpDstPortMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -60859,9 +60859,9 @@ type PatternFlowTcpDstPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -61023,7 +61023,7 @@ type PatternFlowTcpSeqNumMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -61066,8 +61066,8 @@ func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -61102,9 +61102,9 @@ type PatternFlowTcpSeqNum struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -61266,7 +61266,7 @@ type PatternFlowTcpAckNumMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -61309,8 +61309,8 @@ func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpAckNumMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -61345,9 +61345,9 @@ type PatternFlowTcpAckNum struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -61509,7 +61509,7 @@ type PatternFlowTcpDataOffsetMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -61552,8 +61552,8 @@ func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -61588,9 +61588,9 @@ type PatternFlowTcpDataOffset struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -61752,7 +61752,7 @@ type PatternFlowTcpEcnNsMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -61795,8 +61795,8 @@ func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -61831,9 +61831,9 @@ type PatternFlowTcpEcnNs struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -61995,7 +61995,7 @@ type PatternFlowTcpEcnCwrMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -62038,8 +62038,8 @@ func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -62074,9 +62074,9 @@ type PatternFlowTcpEcnCwr struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -62238,7 +62238,7 @@ type PatternFlowTcpEcnEchoMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -62281,8 +62281,8 @@ func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -62318,9 +62318,9 @@ type PatternFlowTcpEcnEcho struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -62482,7 +62482,7 @@ type PatternFlowTcpCtlUrgMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -62525,8 +62525,8 @@ func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -62561,9 +62561,9 @@ type PatternFlowTcpCtlUrg struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -62725,7 +62725,7 @@ type PatternFlowTcpCtlAckMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -62768,8 +62768,8 @@ func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -62804,9 +62804,9 @@ type PatternFlowTcpCtlAck struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -62968,7 +62968,7 @@ type PatternFlowTcpCtlPshMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -63011,8 +63011,8 @@ func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -63047,9 +63047,9 @@ type PatternFlowTcpCtlPsh struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -63211,7 +63211,7 @@ type PatternFlowTcpCtlRstMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -63254,8 +63254,8 @@ func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -63290,9 +63290,9 @@ type PatternFlowTcpCtlRst struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -63454,7 +63454,7 @@ type PatternFlowTcpCtlSynMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -63497,8 +63497,8 @@ func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -63533,9 +63533,9 @@ type PatternFlowTcpCtlSyn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -63697,7 +63697,7 @@ type PatternFlowTcpCtlFinMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -63740,8 +63740,8 @@ func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -63776,9 +63776,9 @@ type PatternFlowTcpCtlFin struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -63940,7 +63940,7 @@ type PatternFlowTcpWindowMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -63983,8 +63983,8 @@ func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowTcpWindowMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -64019,9 +64019,9 @@ type PatternFlowTcpWindow struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -64183,7 +64183,7 @@ type PatternFlowUdpSrcPortMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -64226,8 +64226,8 @@ func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -64262,9 +64262,9 @@ type PatternFlowUdpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -64426,7 +64426,7 @@ type PatternFlowUdpDstPortMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -64469,8 +64469,8 @@ func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowUdpDstPortMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -64505,9 +64505,9 @@ type PatternFlowUdpDstPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -64669,7 +64669,7 @@ type PatternFlowUdpLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -64712,8 +64712,8 @@ func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowUdpLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -64748,9 +64748,9 @@ type PatternFlowUdpLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -64981,7 +64981,7 @@ type PatternFlowGreChecksumPresentMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -65024,8 +65024,8 @@ func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -65060,9 +65060,9 @@ type PatternFlowGreChecksumPresent struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -65224,7 +65224,7 @@ type PatternFlowGreReserved0MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -65267,8 +65267,8 @@ func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGreReserved0MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -65303,9 +65303,9 @@ type PatternFlowGreReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -65467,7 +65467,7 @@ type PatternFlowGreVersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -65510,8 +65510,8 @@ func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGreVersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -65546,9 +65546,9 @@ type PatternFlowGreVersion struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -65710,7 +65710,7 @@ type PatternFlowGreProtocolMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -65753,8 +65753,8 @@ func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGreProtocolMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -65789,9 +65789,9 @@ type PatternFlowGreProtocol struct { // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -66023,7 +66023,7 @@ type PatternFlowGreReserved1MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -66066,8 +66066,8 @@ func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGreReserved1MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -66102,9 +66102,9 @@ type PatternFlowGreReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -66266,7 +66266,7 @@ type PatternFlowGtpv1VersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -66309,8 +66309,8 @@ func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -66345,9 +66345,9 @@ type PatternFlowGtpv1Version struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -66509,7 +66509,7 @@ type PatternFlowGtpv1ProtocolTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -66552,8 +66552,8 @@ func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -66588,9 +66588,9 @@ type PatternFlowGtpv1ProtocolType struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -66752,7 +66752,7 @@ type PatternFlowGtpv1ReservedMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -66795,8 +66795,8 @@ func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -66831,9 +66831,9 @@ type PatternFlowGtpv1Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -66995,7 +66995,7 @@ type PatternFlowGtpv1EFlagMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -67038,8 +67038,8 @@ func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -67074,9 +67074,9 @@ type PatternFlowGtpv1EFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -67238,7 +67238,7 @@ type PatternFlowGtpv1SFlagMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -67281,8 +67281,8 @@ func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -67317,9 +67317,9 @@ type PatternFlowGtpv1SFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -67481,7 +67481,7 @@ type PatternFlowGtpv1PnFlagMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -67524,8 +67524,8 @@ func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -67560,9 +67560,9 @@ type PatternFlowGtpv1PnFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -67724,7 +67724,7 @@ type PatternFlowGtpv1MessageTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -67767,8 +67767,8 @@ func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -67804,9 +67804,9 @@ type PatternFlowGtpv1MessageType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -67968,7 +67968,7 @@ type PatternFlowGtpv1MessageLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -68011,8 +68011,8 @@ func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -68048,9 +68048,9 @@ type PatternFlowGtpv1MessageLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -68212,7 +68212,7 @@ type PatternFlowGtpv1TeidMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -68255,8 +68255,8 @@ func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -68291,9 +68291,9 @@ type PatternFlowGtpv1Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -68455,7 +68455,7 @@ type PatternFlowGtpv1SquenceNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -68498,8 +68498,8 @@ func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -68535,9 +68535,9 @@ type PatternFlowGtpv1SquenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -68699,7 +68699,7 @@ type PatternFlowGtpv1NPduNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -68742,8 +68742,8 @@ func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -68779,9 +68779,9 @@ type PatternFlowGtpv1NPduNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -68943,7 +68943,7 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -68986,8 +68986,8 @@ func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, [ } func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -69023,9 +69023,9 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -69187,7 +69187,7 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -69230,8 +69230,8 @@ func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, [] } func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -69268,9 +69268,9 @@ type PatternFlowGtpExtensionExtensionLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -69432,7 +69432,7 @@ type PatternFlowGtpExtensionContentsMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -69475,8 +69475,8 @@ func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -69511,9 +69511,9 @@ type PatternFlowGtpExtensionContents struct { // default = [0] Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -69675,7 +69675,7 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -69718,8 +69718,8 @@ func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte } func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -69755,9 +69755,9 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -69919,7 +69919,7 @@ type PatternFlowGtpv2VersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -69962,8 +69962,8 @@ func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -69998,9 +69998,9 @@ type PatternFlowGtpv2Version struct { // default = [2] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -70162,7 +70162,7 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -70205,8 +70205,8 @@ func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -70242,9 +70242,9 @@ type PatternFlowGtpv2PiggybackingFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -70406,7 +70406,7 @@ type PatternFlowGtpv2TeidFlagMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -70449,8 +70449,8 @@ func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -70487,9 +70487,9 @@ type PatternFlowGtpv2TeidFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -70651,7 +70651,7 @@ type PatternFlowGtpv2Spare1MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -70694,8 +70694,8 @@ func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -70730,9 +70730,9 @@ type PatternFlowGtpv2Spare1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -70894,7 +70894,7 @@ type PatternFlowGtpv2MessageTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -70937,8 +70937,8 @@ func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -70974,9 +70974,9 @@ type PatternFlowGtpv2MessageType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -71138,7 +71138,7 @@ type PatternFlowGtpv2MessageLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -71181,8 +71181,8 @@ func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -71218,9 +71218,9 @@ type PatternFlowGtpv2MessageLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -71382,7 +71382,7 @@ type PatternFlowGtpv2TeidMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -71425,8 +71425,8 @@ func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -71462,9 +71462,9 @@ type PatternFlowGtpv2Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -71626,7 +71626,7 @@ type PatternFlowGtpv2SequenceNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -71669,8 +71669,8 @@ func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -71705,9 +71705,9 @@ type PatternFlowGtpv2SequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -71869,7 +71869,7 @@ type PatternFlowGtpv2Spare2MetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -71912,8 +71912,8 @@ func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -71948,9 +71948,9 @@ type PatternFlowGtpv2Spare2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -72112,7 +72112,7 @@ type PatternFlowArpHardwareTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -72155,8 +72155,8 @@ func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -72191,9 +72191,9 @@ type PatternFlowArpHardwareType struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -72355,7 +72355,7 @@ type PatternFlowArpProtocolTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -72398,8 +72398,8 @@ func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -72434,9 +72434,9 @@ type PatternFlowArpProtocolType struct { // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -72598,7 +72598,7 @@ type PatternFlowArpHardwareLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -72641,8 +72641,8 @@ func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -72677,9 +72677,9 @@ type PatternFlowArpHardwareLength struct { // default = [6] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -72841,7 +72841,7 @@ type PatternFlowArpProtocolLengthMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -72884,8 +72884,8 @@ func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -72920,9 +72920,9 @@ type PatternFlowArpProtocolLength struct { // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -73084,7 +73084,7 @@ type PatternFlowArpOperationMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -73127,8 +73127,8 @@ func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpOperationMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -73163,9 +73163,9 @@ type PatternFlowArpOperation struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -73327,7 +73327,7 @@ type PatternFlowArpSenderHardwareAddrMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -73370,8 +73370,8 @@ func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -73406,9 +73406,9 @@ type PatternFlowArpSenderHardwareAddr struct { // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -73570,7 +73570,7 @@ type PatternFlowArpSenderProtocolAddrMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -73613,8 +73613,8 @@ func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -73649,9 +73649,9 @@ type PatternFlowArpSenderProtocolAddr struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -73813,7 +73813,7 @@ type PatternFlowArpTargetHardwareAddrMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -73856,8 +73856,8 @@ func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -73892,9 +73892,9 @@ type PatternFlowArpTargetHardwareAddr struct { // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -74056,7 +74056,7 @@ type PatternFlowArpTargetProtocolAddrMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -74099,8 +74099,8 @@ func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -74135,9 +74135,9 @@ type PatternFlowArpTargetProtocolAddr struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -74299,7 +74299,7 @@ type PatternFlowIcmpEchoTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -74342,8 +74342,8 @@ func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -74378,9 +74378,9 @@ type PatternFlowIcmpEchoType struct { // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -74542,7 +74542,7 @@ type PatternFlowIcmpEchoCodeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -74585,8 +74585,8 @@ func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -74621,9 +74621,9 @@ type PatternFlowIcmpEchoCode struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -74854,7 +74854,7 @@ type PatternFlowIcmpEchoIdentifierMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -74897,8 +74897,8 @@ func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -74933,9 +74933,9 @@ type PatternFlowIcmpEchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -75097,7 +75097,7 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -75140,8 +75140,8 @@ func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) } func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -75176,9 +75176,9 @@ type PatternFlowIcmpEchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -75409,7 +75409,7 @@ type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -75452,8 +75452,8 @@ func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int } func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -75488,9 +75488,9 @@ type PatternFlowIcmpNextFieldsIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -75652,7 +75652,7 @@ type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -75695,8 +75695,8 @@ func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, [ } func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -75731,9 +75731,9 @@ type PatternFlowIcmpNextFieldsSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -75895,7 +75895,7 @@ type PatternFlowIcmpv6EchoTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -75938,8 +75938,8 @@ func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -75974,9 +75974,9 @@ type PatternFlowIcmpv6EchoType struct { // default = [128] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -76138,7 +76138,7 @@ type PatternFlowIcmpv6EchoCodeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -76181,8 +76181,8 @@ func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -76217,9 +76217,9 @@ type PatternFlowIcmpv6EchoCode struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -76381,7 +76381,7 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -76424,8 +76424,8 @@ func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -76460,9 +76460,9 @@ type PatternFlowIcmpv6EchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -76624,7 +76624,7 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -76667,8 +76667,8 @@ func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int } func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -76703,9 +76703,9 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -77005,7 +77005,7 @@ type PatternFlowPppAddressMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -77048,8 +77048,8 @@ func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPppAddressMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -77084,9 +77084,9 @@ type PatternFlowPppAddress struct { // default = [255] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -77248,7 +77248,7 @@ type PatternFlowPppControlMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -77291,8 +77291,8 @@ func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPppControlMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -77327,9 +77327,9 @@ type PatternFlowPppControl struct { // default = [3] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -77491,7 +77491,7 @@ type PatternFlowPppProtocolTypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -77534,8 +77534,8 @@ func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -77575,9 +77575,9 @@ type PatternFlowPppProtocolType struct { // default = 33 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -77746,7 +77746,7 @@ type PatternFlowIgmpv1VersionMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -77789,8 +77789,8 @@ func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -77825,9 +77825,9 @@ type PatternFlowIgmpv1Version struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -77989,7 +77989,7 @@ type PatternFlowIgmpv1TypeMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -78032,8 +78032,8 @@ func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -78068,9 +78068,9 @@ type PatternFlowIgmpv1Type struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -78232,7 +78232,7 @@ type PatternFlowIgmpv1UnusedMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -78275,8 +78275,8 @@ func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -78311,9 +78311,9 @@ type PatternFlowIgmpv1Unused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -78544,7 +78544,7 @@ type PatternFlowIgmpv1GroupAddressMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -78587,8 +78587,8 @@ func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -78623,9 +78623,9 @@ type PatternFlowIgmpv1GroupAddress struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -78787,7 +78787,7 @@ type PatternFlowMplsLabelMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -78830,8 +78830,8 @@ func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowMplsLabelMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -78871,9 +78871,9 @@ type PatternFlowMplsLabel struct { // default = 16 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -79042,7 +79042,7 @@ type PatternFlowMplsTrafficClassMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -79085,8 +79085,8 @@ func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -79121,9 +79121,9 @@ type PatternFlowMplsTrafficClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -79285,7 +79285,7 @@ type PatternFlowMplsBottomOfStackMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -79328,8 +79328,8 @@ func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -79369,9 +79369,9 @@ type PatternFlowMplsBottomOfStack struct { // default = 1 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -79540,7 +79540,7 @@ type PatternFlowMplsTimeToLiveMetricTag struct { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` @@ -79583,8 +79583,8 @@ func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { } func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { - if x != nil { - return x.Name + if x != nil && x.Name != nil { + return *x.Name } return "" } @@ -79619,9 +79619,9 @@ type PatternFlowMplsTimeToLive struct { // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. @@ -92485,7 +92485,7 @@ var file_otg_proto_rawDesc = []byte{ 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xf0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, + 0xcf, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, @@ -92499,74 +92499,68 @@ var file_otg_proto_rawDesc = []byte{ 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, - 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, - 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, - 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, - 0x63, 0x70, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x88, - 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, + 0x12, 0x22, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, + 0x70, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x6f, 0x72, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x04, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, + 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa9, + 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, + 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x07, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x72, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x33, + 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, + 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, + 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, + 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, @@ -92615,665 +92609,620 @@ var file_otg_proto_rawDesc = []byte{ 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, - 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0xb9, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, - 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, - 0x75, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x78, 0x38, 0x38, 0x41, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, - 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, - 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, - 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, - 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcd, - 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, - 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, - 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, - 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, - 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, - 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, - 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, - 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0f, 0x61, 0x75, - 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x07, - 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x8b, - 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, - 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, - 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, - 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, 0x42, 0x0a, 0x05, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, - 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, - 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, - 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x89, 0x04, - 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, - 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, - 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, - 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, + 0x75, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x63, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xc0, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, + 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x03, + 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, + 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, + 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, + 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x38, 0x41, 0x38, 0x10, 0x02, + 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, + 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, + 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x4d, 0x41, 0x43, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, + 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x74, 0x68, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x65, + 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, + 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x4d, 0x61, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x08, + 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x83, 0x07, + 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, + 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, + 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, + 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x10, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x22, 0x8b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, + 0x01, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, + 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, + 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, + 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x31, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, + 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, + 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, + 0x73, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, + 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x32, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, + 0x42, 0x0a, 0x05, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, + 0x05, 0x66, 0x69, 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, + 0x69, 0x10, 0x03, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, + 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x89, 0x04, 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, + 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, + 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, + 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, + 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, - 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, - 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, - 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, - 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0x89, 0x03, 0x0a, 0x11, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, - 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, - 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x48, - 0x02, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x48, 0x03, 0x52, 0x09, - 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x45, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, - 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, - 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, - 0x5f, 0x31, 0x71, 0x62, 0x62, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, - 0x30, 0x32, 0x5f, 0x33, 0x78, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, - 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, + 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, + 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, + 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, + 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, + 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, + 0xdd, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, + 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, + 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, + 0x32, 0x31, 0x71, 0x62, 0x62, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, + 0x62, 0x62, 0x12, 0x34, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x52, 0x09, 0x69, + 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x1a, 0x45, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x69, + 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, 0x10, 0x01, 0x12, 0x0f, + 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, 0x10, 0x02, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, + 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, + 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, + 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, + 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xcc, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, - 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x48, 0x04, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, - 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x01, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, + 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, + 0x22, 0xda, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, + 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, + 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x03, + 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, + 0x12, 0x24, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x1a, 0x59, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, 0x61, + 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x7d, + 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xbd, 0x01, + 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, + 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x22, 0xb3, 0x01, + 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x2d, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x03, + 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x63, 0x66, + 0x69, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x22, 0xd9, 0x05, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x2b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, - 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xf6, 0x07, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, - 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, + 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x36, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39, 0x0a, + 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x09, 0x52, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0b, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x64, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x38, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3a, 0x0a, 0x0f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, + 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, + 0x2b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0d, 0x52, - 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xa2, - 0x04, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x30, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3b, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, 0x52, 0x0a, 0x6e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x09, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x65, 0x6c, 0x64, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0d, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x09, 0x66, 0x6c, 0x6f, + 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x64, - 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x07, 0x52, 0x03, 0x64, - 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x64, 0x73, 0x74, 0x22, 0xa7, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, - 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x48, 0x03, - 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, - 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0x4f, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, - 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf0, - 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x48, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, - 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, - 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, - 0x64, 0x22, 0x81, 0x08, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x3d, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x03, 0x52, - 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, - 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x64, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x32, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xfd, + 0x02, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, + 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, + 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x04, + 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, + 0x26, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x52, + 0x04, 0x72, 0x73, 0x76, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, + 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, + 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, + 0xc9, 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x2d, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, + 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, + 0x75, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, + 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x17, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, + 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, 0x64, 0x22, 0xb4, 0x07, 0x0a, 0x0d, + 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x0a, + 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, + 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0a, - 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x64, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0a, 0x6c, 0x31, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0a, 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x39, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, + 0x13, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, + 0x12, 0x48, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, - 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x0b, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, - 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, - 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x4c, 0x69, - 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x48, - 0x04, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, + 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, + 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, + 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, 0x32, 0x10, + 0x03, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, 0x18, 0x0a, 0x05, + 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x6d, + 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x6c, + 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0xff, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x6e, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0b, + 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, + 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x52, 0x12, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, @@ -93291,298 +93240,304 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, - 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x22, 0x86, 0x02, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x12, 0x50, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, - 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, - 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, - 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, - 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, - 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, - 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, - 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, - 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, - 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, - 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, - 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, - 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, - 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, - 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, - 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, - 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, + 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, + 0x73, 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, + 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, + 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, + 0x61, 0x72, 0x65, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, + 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, + 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, + 0x68, 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, + 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, + 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, + 0x31, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, + 0x75, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, + 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, + 0x69, 0x73, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x4c, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, + 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, + 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, + 0xb2, 0x05, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x12, 0x35, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, + 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, + 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, + 0x73, 0x70, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x04, 0x52, 0x0c, 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, + 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, + 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, + 0x70, 0x4d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, - 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x61, - 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x02, 0x52, 0x0a, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x22, 0xe9, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x62, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, + 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x09, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x08, + 0x61, 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x22, 0xfc, 0x01, + 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, - 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xaf, - 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, - 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, - 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x99, 0x01, 0x0a, - 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbd, 0x05, 0x0a, + 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, + 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x78, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x07, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, + 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, + 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, + 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x56, 0x36, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaf, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, - 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, - 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x22, 0xbd, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, + 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, + 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, + 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x05, 0x6e, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, + 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, @@ -93707,38 +93662,38 @@ var file_otg_proto_rawDesc = []byte{ 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x8d, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, - 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, - 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x18, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, + 0x6f, 0x64, 0x65, 0x22, 0xf1, 0x07, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, + 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, + 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x18, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, @@ -93752,13 +93707,13 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, - 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, + 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, + 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, + 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, + 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, @@ -93766,323 +93721,308 @@ var file_otg_proto_rawDesc = []byte{ 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, - 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, - 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, - 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, - 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, - 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, + 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, + 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x70, + 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, + 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xcc, 0x04, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, + 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, + 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x48, + 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x5d, + 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, + 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, 0x04, + 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1d, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, - 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, - 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, + 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, + 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, + 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, + 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, + 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, + 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, + 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x73, + 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, 0x61, + 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, 0x12, + 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, 0x07, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, - 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, - 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, - 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x10, + 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, 0x73, + 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, - 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, - 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, - 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, - 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, - 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, - 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, - 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, - 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x22, 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x50, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, - 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, - 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, - 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, - 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb4, 0x05, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x61, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, - 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, - 0x69, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, - 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, + 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, + 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, + 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, + 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, + 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, + 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, + 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 0x07, + 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, + 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, + 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, + 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, + 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, + 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, + 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, + 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe2, 0x01, + 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, + 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, + 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, + 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, + 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x22, 0xd8, 0x04, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0e, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x02, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, + 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02, + 0x65, 0x77, 0x61, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, @@ -94254,7 +94194,7 @@ var file_otg_proto_rawDesc = []byte{ 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xe2, 0x07, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xbb, 0x07, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, @@ -94277,244 +94217,220 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, - 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, - 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf4, 0x09, 0x0a, 0x14, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, - 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x16, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x78, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x02, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, + 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, + 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, + 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x42, + 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, + 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x69, 0x64, 0x22, 0x93, 0x08, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x6a, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x1c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, + 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, + 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x04, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, - 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x05, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x79, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, 0x19, - 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xe7, - 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, - 0x18, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, - 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x6e, 0x6f, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, + 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0xe7, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0xdc, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, - 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, - 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, - 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, - 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, - 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, - 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, - 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, + 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, + 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, + 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, + 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, + 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc4, 0x03, + 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, - 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x8c, - 0x04, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, + 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, + 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x11, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x2d, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbf, 0x01, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, @@ -94539,7 +94455,7 @@ var file_otg_proto_rawDesc = []byte{ 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x22, 0xc4, 0x03, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, @@ -94547,798 +94463,773 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x22, 0x9b, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, - 0x9b, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xa8, 0x03, 0x0a, 0x28, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, - 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xde, 0x03, - 0x0a, 0x28, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x6f, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, + 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x2f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x01, 0x52, - 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x74, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x14, 0x65, - 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, - 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x64, - 0x0a, 0x2f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, - 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x63, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xc4, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, + 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, + 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, + 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, + 0x61, 0x63, 0x22, 0xa8, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, + 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x48, 0x01, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, - 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x3a, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, - 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, - 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xed, 0x02, 0x0a, - 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x16, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4d, 0x61, 0x63, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x39, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x2f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xae, 0x01, + 0x0a, 0x3a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, - 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x48, 0x01, 0x52, 0x14, + 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xcd, + 0x02, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x75, 0x0a, + 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xcc, 0x01, 0x0a, - 0x1e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe2, 0x07, 0x0a, 0x0f, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x22, 0xca, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x74, 0x79, 0x70, 0x65, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcc, + 0x01, 0x0a, 0x1e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x07, + 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, + 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, + 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, + 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x08, 0x0a, 0x0f, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, + 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, + 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, - 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, - 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, - 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, - 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, - 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, - 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, - 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, - 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, - 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, - 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, - 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, - 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, - 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, + 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, + 0x57, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x5c, - 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, - 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, - 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, 0x70, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, - 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6e, 0x6f, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x6f, - 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0c, - 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, - 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x6c, 0x76, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x41, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x6c, 0x76, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, 0x0a, + 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, + 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, 0x01, 0x0a, - 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, - 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, - 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, 0x17, 0x0a, - 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, - 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x12, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd0, 0x08, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x65, + 0x76, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, + 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x5c, 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, + 0x70, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, + 0x01, 0x1a, 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, + 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, + 0x01, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, + 0x17, 0x0a, 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xb7, 0x01, + 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xc4, 0x07, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x88, 0x01, 0x01, 0x12, - 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, - 0x01, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x44, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x88, 0x01, 0x01, 0x12, - 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, - 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x47, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x07, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x48, 0x08, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x88, 0x01, 0x01, 0x12, - 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x12, + 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, - 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x43, 0x12, 0x35, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x44, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x12, 0x35, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x0a, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, - 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, - 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x6a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x12, - 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, - 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, - 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, 0x0a, 0x19, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, - 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x74, - 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, 0x74, - 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, - 0x74, 0x6c, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, - 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, - 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x17, 0x73, - 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, - 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, + 0x65, 0x46, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, + 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x35, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, + 0x74, 0x79, 0x70, 0x65, 0x4b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, + 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, + 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, + 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, + 0x53, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, + 0x0a, 0x02, 0x74, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, + 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, + 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, + 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xc4, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x04, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, + 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, - 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, - 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, - 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x82, 0x02, 0x0a, 0x19, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, - 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, - 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, - 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x93, 0x03, 0x0a, - 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, + 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf7, + 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, + 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, + 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x88, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, + 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, + 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0xc1, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, + 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, + 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, + 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, - 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x03, 0x52, 0x09, 0x73, 0x72, 0x4d, - 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, + 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, - 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, - 0xab, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x17, 0x73, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, - 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xbf, 0x04, - 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, - 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, - 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, - 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, - 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x05, 0x52, 0x17, 0x73, - 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, - 0x96, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, + 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xde, + 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, + 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x11, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, + 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, + 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, + 0xab, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, - 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, - 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, - 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x48, 0x03, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, - 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xc9, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, - 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, - 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, + 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, + 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, + 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xb9, 0x08, + 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, + 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, + 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x78, 0x74, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, + 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, @@ -95349,860 +95240,829 @@ var file_otg_proto_rawDesc = []byte{ 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, - 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, + 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, + 0x12, 0x57, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, - 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, - 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, - 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, - 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, - 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, - 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe6, 0x01, - 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, - 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6c, 0x67, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x6c, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x36, - 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, - 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x61, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, - 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x63, - 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, - 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, - 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, - 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x41, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, + 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, + 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, + 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, + 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x48, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x62, 0x67, - 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, - 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x1d, - 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x56, - 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, - 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, - 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, - 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, - 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, - 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, - 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, - 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, - 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, - 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x42, 0x23, - 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, - 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, - 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, - 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, - 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6c, 0x67, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, + 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0xb4, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x16, 0x65, + 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x65, 0x73, - 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, + 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x61, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, + 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x1a, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, + 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x10, 0x67, 0x72, 0x61, + 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, + 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x1a, 0x35, 0x0a, + 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, + 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, + 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x67, 0x70, + 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, + 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, + 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, + 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, + 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, + 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, + 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, + 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, + 0xcc, 0x04, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, + 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, + 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xcd, 0x01, 0x0a, - 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, - 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x65, - 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, - 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, 0xed, 0x07, 0x0a, - 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, - 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, - 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, - 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, - 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, - 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x48, + 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xba, + 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, + 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, + 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x1a, 0x30, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 0x07, 0x0a, 0x0d, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, + 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, + 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, + 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, + 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, + 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, + 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, + 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, - 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xe2, 0x01, 0x0a, - 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, - 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, - 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, - 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, - 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x0d, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, - 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x03, 0x76, 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe2, 0x01, 0x0a, 0x1c, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, + 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, + 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, + 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, + 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, + 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x03, + 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x76, 0x6e, 0x69, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x76, 0x6e, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xca, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x01, - 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, 0x52, - 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, - 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, - 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, - 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x07, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xca, 0x02, 0x0a, + 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, - 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, - 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, - 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, - 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x1a, + 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, + 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, + 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, + 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, + 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, + 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, - 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, - 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, - 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, - 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, - 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, - 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, - 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, + 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, + 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, - 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, - 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x16, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0a, 0x73, 0x65, - 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x06, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0d, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x11, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5f, 0x0a, - 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, + 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, + 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf7, 0x05, 0x0a, + 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x16, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x73, + 0x65, 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, 0x0d, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0a, 0x52, 0x11, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, + 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x81, 0x02, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x5a, 0x0a, 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, + 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x11, 0x70, 0x32, 0x70, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x5d, 0x0a, + 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x04, 0x0a, 0x24, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, + 0x4c, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x70, 0x32, 0x70, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, - 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x17, 0x0a, - 0x15, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x24, 0x52, 0x73, 0x76, 0x70, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, - 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, - 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x5c, - 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, - 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, - 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, 0x05, 0x0a, 0x25, - 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, - 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, - 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x12, 0x6c, 0x73, 0x70, - 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x48, 0x07, - 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0c, 0x66, 0x61, - 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, - 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x08, 0x52, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x45, 0x72, 0x6f, 0x48, 0x09, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, - 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x14, 0x0a, - 0x12, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x65, 0x72, 0x6f, 0x22, 0xd9, 0x06, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, - 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x73, - 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x10, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x04, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc1, 0x05, + 0x0a, 0x25, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, + 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, + 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, + 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6c, 0x73, 0x70, 0x5f, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x12, 0x6c, 0x73, 0x70, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, + 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x12, 0x37, 0x0a, 0x0c, + 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, + 0x52, 0x03, 0x65, 0x72, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x22, 0xbc, 0x06, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1a, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, + 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x68, 0x6f, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, + 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, + 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1c, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, + 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x48, 0x09, - 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, - 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, - 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, - 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, - 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, - 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, - 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x22, - 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, 0x0a, - 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, - 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, - 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf7, 0x02, + 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, 0x0a, 0x11, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, 0x73, - 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, - 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x70, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, - 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, - 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, - 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, - 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, - 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, 0x52, - 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, - 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, - 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x75, - 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x1a, 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x10, 0x0a, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, - 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, - 0x73, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, - 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, - 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, - 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, - 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, - 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, - 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, - 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, - 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x72, - 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, + 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, + 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, 0x73, 0x76, 0x70, + 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, + 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x68, 0x6f, + 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x09, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, + 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, + 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, + 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x1c, + 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, 0x52, 0x73, 0x76, + 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x2e, + 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, + 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x1a, + 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, + 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x6f, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, 0x6f, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, + 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xcc, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x05, + 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, 0x52, 0x78, + 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, + 0x21, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x52, + 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, + 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, @@ -96215,1328 +96075,1091 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, - 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, + 0xa1, 0x08, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, 0x08, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x48, - 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x75, 0x64, 0x70, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, 0x67, 0x72, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x29, - 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x48, 0x0d, 0x52, - 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x72, 0x70, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, 0x52, 0x04, 0x69, - 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x48, - 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, 0x06, 0x69, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x1a, - 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, - 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, - 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, - 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, - 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, - 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, - 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, - 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, 0x70, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x31, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, - 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x70, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xae, 0x02, 0x0a, - 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x32, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, - 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x12, 0x2d, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x12, 0x21, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x76, + 0x6c, 0x61, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x70, 0x76, + 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x21, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, + 0x2d, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x3c, + 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x0d, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, + 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x1e, 0x0a, 0x03, + 0x75, 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x52, 0x03, 0x75, 0x64, 0x70, 0x12, 0x1e, 0x0a, 0x03, + 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x03, 0x67, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x05, + 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x05, 0x67, 0x74, 0x70, + 0x76, 0x31, 0x12, 0x24, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x52, 0x03, 0x61, 0x72, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x52, 0x06, 0x69, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x52, + 0x03, 0x70, 0x70, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x52, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x21, 0x0a, + 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, + 0x1a, 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, + 0x08, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, + 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, + 0x72, 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, + 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, + 0x70, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, + 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, + 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, + 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x6c, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xed, 0x01, 0x0a, 0x0c, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x03, + 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, + 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x73, + 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x22, 0xfe, 0x01, - 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x63, 0x66, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x48, - 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x48, 0x02, 0x52, - 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x48, 0x03, - 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x05, - 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x22, 0xa7, - 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x65, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x08, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x52, 0x03, 0x63, 0x66, 0x69, 0x12, 0x26, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x52, 0x04, 0x74, + 0x70, 0x69, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x48, 0x02, 0x52, - 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x12, 0x2a, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x3c, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x82, 0x07, 0x0a, 0x08, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x35, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x45, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, + 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, - 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, - 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x6d, 0x6f, + 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x64, 0x6f, + 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, - 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, + 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x03, 0x73, 0x72, + 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, + 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, + 0x22, 0x9a, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x22, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x12, 0x25, 0x0a, 0x04, + 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x52, 0x04, 0x64, + 0x73, 0x63, 0x70, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6c, 0x0a, + 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x12, 0x2d, 0x0a, + 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x0b, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, 0x64, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, - 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x48, 0x01, 0x52, - 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, - 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, - 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, - 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x52, 0x03, 0x70, 0x68, 0x62, 0x12, 0x2d, 0x0a, 0x03, + 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x52, 0x03, 0x65, 0x63, 0x6e, 0x22, 0x81, 0x03, 0x0a, 0x0b, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x70, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, + 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, 0x03, 0x70, 0x68, - 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x48, 0x01, - 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x68, 0x62, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, - 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x48, - 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, - 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, + 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x6d, + 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, - 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x72, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, - 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x48, - 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x05, 0x52, - 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, - 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x52, 0x08, + 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, + 0xe2, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x35, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, - 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, - 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x48, 0x06, 0x52, - 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x48, 0x07, 0x52, - 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x09, 0x66, + 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x29, + 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x73, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x22, 0xa0, 0x07, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x52, 0x03, + 0x73, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, + 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x52, 0x0b, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x31, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x31, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x52, 0x0b, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x33, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x52, + 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x47, 0x0a, 0x0d, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x48, - 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x48, 0x09, 0x52, - 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, 0x52, 0x0b, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, - 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x64, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, - 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, 0x07, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, - 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x36, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x47, + 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x22, 0xcd, 0x02, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, + 0x74, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x73, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x48, 0x05, - 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x63, - 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, 0x52, 0x06, 0x63, - 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, - 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x88, 0x01, - 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x48, 0x0a, 0x52, - 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, - 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, + 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x35, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa6, 0x06, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x32, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x06, 0x73, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x64, + 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x63, 0x6e, + 0x5f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x4e, 0x73, 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x63, + 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x48, - 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, - 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x71, 0x5f, - 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, - 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, - 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, - 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x35, + 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, - 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x07, 0x65, 0x63, + 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, + 0x67, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, + 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x32, 0x0a, + 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, + 0x68, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x52, 0x06, 0x63, + 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, + 0x6e, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, + 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x31, 0x0a, + 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x22, 0xe3, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x35, 0x0a, 0x08, + 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x52, - 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x37, 0x0a, + 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xf8, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x34, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x5f, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x22, 0xde, 0x06, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x12, + 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x04, - 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6e, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, - 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, 0x52, 0x0d, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x31, 0x0a, + 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, - 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, 0x0a, 0x6e, 0x50, - 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1a, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x0b, 0x52, - 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x11, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1d, 0x0a, - 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdc, 0x02, 0x0a, - 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, 0x05, 0x0a, 0x09, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, - 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x48, 0x03, 0x52, - 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x34, 0x0a, 0x07, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x06, + 0x70, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x48, 0x06, 0x52, - 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x65, 0x69, 0x64, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, 0xb8, 0x07, 0x0a, - 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x52, + 0x04, 0x74, 0x65, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x41, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, + 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x69, 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, + 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x22, 0x91, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0f, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x40, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x63, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xca, 0x04, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x11, + 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, + 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, + 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, + 0x31, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, + 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, + 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x52, 0x06, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x32, 0x22, 0xcd, 0x05, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, + 0x44, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x68, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, - 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, - 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, - 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, - 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x52, + 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x1a, + 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb5, 0x01, 0x0a, - 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, - 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4f, + 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0xa7, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, 0x68, + 0x6f, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x32, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, - 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, + 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xbb, 0x01, + 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, 0x34, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, - 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0a, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, - 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x06, - 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x0a, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x37, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, 0x06, 0x75, 0x6e, - 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, - 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, - 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8f, + 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x03, 0x0a, - 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x03, 0x52, 0x06, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0c, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x48, 0x04, 0x52, 0x0b, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, - 0x22, 0xa9, 0x03, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, - 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, - 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x02, 0x1a, 0x6f, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, - 0x61, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, - 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, - 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, - 0x69, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0d, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, + 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, + 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, + 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x40, + 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, + 0x4c, 0x69, 0x76, 0x65, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, + 0x22, 0xed, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, + 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, + 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, - 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, - 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, - 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, - 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, - 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xdd, - 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, - 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x22, 0x64, - 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, - 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, - 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, - 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x91, 0x01, - 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, + 0x69, 0x72, 0x73, 0x52, 0x0b, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x1a, 0x59, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, + 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, + 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0xa9, 0x03, 0x0a, 0x13, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, + 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x6f, 0x0a, 0x0a, + 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x61, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x04, 0x12, + 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x88, + 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, 0x70, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x62, + 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x10, 0x03, + 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x62, + 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, 0x73, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x46, 0x6c, + 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x24, + 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x05, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x55, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, + 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, + 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, + 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, + 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, + 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, + 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, + 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, + 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, 0x82, 0x01, + 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, - 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, - 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, - 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x48, - 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, - 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, - 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, - 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, - 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, - 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, - 0x87, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x02, - 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x04, 0x52, - 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x16, 0x70, - 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x54, 0x61, 0x67, 0x73, 0x48, 0x05, 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x6f, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x19, - 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, - 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, - 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, - 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, - 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, + 0x61, 0x70, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x67, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, + 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x52, 0x0d, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, + 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, - 0x52, 0x07, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, - 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc1, 0x02, - 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x03, 0x52, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, + 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, + 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, + 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x78, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x23, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x52, 0x14, + 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, + 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, + 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, + 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x63, + 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, + 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x78, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x05, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, + 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x45, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x5a, 0x0a, 0x18, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, - 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x83, - 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x04, - 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x76, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, + 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, + 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x77, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0xa3, - 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0xf7, + 0x02, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x02, 0x52, - 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x73, 0x49, 0x64, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, + 0x28, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, + 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, + 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, - 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, - 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, - 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, - 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, - 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, - 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, - 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, - 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, - 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, - 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, + 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, + 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x19, 0x0a, 0x17, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, + 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, - 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, + 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, + 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, @@ -97547,750 +97170,745 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, - 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, + 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, + 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, + 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, + 0x22, 0x25, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaa, - 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, - 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, - 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, 0x0a, 0x0c, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, - 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, - 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, 0xf1, 0x01, 0x0a, - 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, - 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, - 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x63, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, + 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, + 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x1a, 0x46, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, + 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x48, 0x00, - 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x0d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, 0x52, 0x04, 0x6c, - 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, - 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x6c, 0x6c, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, - 0x63, 0x70, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, - 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, - 0xc7, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, - 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x36, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x03, 0x61, 0x6c, 0x6c, + 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, + 0x2a, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xa3, 0x01, - 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x1a, 0x3f, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xaf, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x1a, 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, + 0x04, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x10, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, + 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, + 0x6f, 0x70, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb2, + 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, - 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, + 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, + 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, - 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xbb, 0x01, 0x0a, - 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, + 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb9, 0x01, 0x0a, + 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, 0x15, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, - 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x62, 0x67, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x48, - 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2f, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, + 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, + 0x28, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x42, 0x67, 0x70, 0x52, 0x03, 0x62, 0x67, 0x70, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, - 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, - 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, - 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x1a, + 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, + 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, + 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, + 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, + 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xbd, 0x01, 0x0a, - 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, - 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, - 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, - 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, - 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, - 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x54, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, - 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, - 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, - 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x40, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, - 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, - 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, - 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, - 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, - 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, - 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, + 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, + 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, + 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, + 0x9b, 0x02, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, - 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0x8f, 0x03, 0x0a, - 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, - 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4b, - 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, + 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, + 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, + 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe6, 0x02, + 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x42, 0x67, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x19, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x17, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd8, 0x06, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x19, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x01, 0x52, - 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, - 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, - 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, - 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, - 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x8f, - 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, - 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, - 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, - 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x03, 0x52, - 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, - 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, - 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, 0x68, 0x6f, 0x6c, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x17, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, - 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, - 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xee, 0x05, 0x0a, 0x0e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, 0x52, 0x05, 0x62, - 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, - 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x6c, 0x61, 0x67, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, - 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, - 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x6c, - 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, - 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x7c, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, - 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, - 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, - 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, - 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, 0x67, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6c, 0x64, 0x70, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, - 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, - 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, - 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, - 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, - 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, - 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, - 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, - 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, - 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, - 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, - 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, - 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, - 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, - 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x05, 0x63, + 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x4c, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x10, 0x6f, 0x70, 0x65, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x52, 0x0a, + 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x52, 0x10, 0x68, + 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, + 0x62, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, + 0x65, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, + 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, + 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, + 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xef, 0x04, 0x0a, 0x0e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, + 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, + 0x67, 0x70, 0x76, 0x34, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, + 0x67, 0x70, 0x76, 0x36, 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x69, 0x73, 0x69, + 0x73, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x03, 0x6c, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x6c, + 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x72, 0x73, + 0x76, 0x70, 0x1a, 0x7c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, - 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, - 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, - 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xf7, 0x02, 0x0a, - 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, + 0x08, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, + 0x76, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, + 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, + 0x6c, 0x6c, 0x64, 0x70, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xfa, 0x05, 0x0a, 0x0f, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, + 0x0c, 0x62, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, + 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, + 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x0b, 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, + 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0xba, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, + 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, + 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, + 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, + 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, + 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, + 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, + 0x22, 0x8b, 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, + 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, + 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, + 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, + 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, + 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xdf, + 0x02, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, + 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, - 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, - 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, - 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, - 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, + 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, + 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x06, 0x0a, + 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, @@ -98308,1746 +97926,1731 @@ var file_otg_proto_rawDesc = []byte{ 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x9b, - 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, - 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x6f, 0x73, 0x73, 0x22, 0xf6, 0x03, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x08, - 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, - 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x6f, 0x0a, 0x0d, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0x60, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd4, 0x01, - 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, 0x74, - 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x29, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, - 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, + 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, + 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, + 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, + 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, + 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, + 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, + 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, + 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, + 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, + 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, + 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, + 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, + 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, + 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, + 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, - 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, - 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, - 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, - 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, - 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, - 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, - 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, - 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, - 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, - 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, - 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, - 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, - 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, - 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, - 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, 0x13, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, + 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, + 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, + 0x13, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, + 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, + 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, + 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, + 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, + 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, + 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, + 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, + 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, + 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, + 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, + 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, - 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, - 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, - 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, - 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, - 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, - 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, - 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, - 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, - 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, + 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, + 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, + 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, + 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, + 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, + 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, + 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, - 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, - 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, - 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, - 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, - 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, - 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, - 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, - 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, - 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, - 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, - 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, - 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x18, - 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, - 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, + 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, + 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, + 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, + 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, - 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, - 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, - 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, - 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, - 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, - 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, 0x6c, - 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, - 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, - 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x0e, - 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, - 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, - 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, - 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, - 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, - 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, - 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, - 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, - 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, - 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, - 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, - 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, - 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, - 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, - 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, - 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, - 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, - 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, - 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, - 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, - 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, - 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, - 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, - 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, - 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, - 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, - 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, - 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, - 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, - 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x07, - 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, - 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, - 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, - 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, - 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, - 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, - 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, + 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, + 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, + 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, + 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, + 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, + 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, + 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, + 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, + 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, + 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, + 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, + 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, + 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, + 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, + 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, + 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, + 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, - 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, + 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, + 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, + 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, + 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, + 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, + 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, + 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, + 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, + 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, + 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, + 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, + 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, + 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, + 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, + 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, + 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, + 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, + 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, - 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, - 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, - 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, + 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, + 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, + 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, + 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, + 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, + 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, + 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, - 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, - 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, - 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, - 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, - 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, - 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, - 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, - 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, - 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, - 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, - 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, - 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, - 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, - 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, - 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, - 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, - 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, - 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, - 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, - 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, - 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, - 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, - 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, - 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, - 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, - 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, - 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, - 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, - 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0b, - 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, - 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, - 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, - 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, - 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0a, - 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, - 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, - 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, + 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, - 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, - 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, - 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, - 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, - 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, - 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, + 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, + 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, + 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, + 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, + 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, + 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, + 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, + 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, + 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, + 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, + 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, + 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, + 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, + 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, + 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, + 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, + 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, + 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, + 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, + 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, + 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, + 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, + 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, + 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, + 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, + 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, + 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, + 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, + 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, + 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, + 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, + 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, + 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, + 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xea, 0x04, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x44, + 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x6c, + 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, + 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, - 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, - 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, - 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, - 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, + 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x73, - 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, - 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, - 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, - 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x67, - 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6c, 0x64, - 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, - 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, - 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, - 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, - 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, - 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, - 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, - 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, - 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, + 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, + 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, + 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd1, + 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, - 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4c, - 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, - 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, 0x0a, - 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, - 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, + 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, + 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, + 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, - 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, - 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, - 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, + 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, + 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe5, - 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, - 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, + 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, + 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, + 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, + 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, + 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, - 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, - 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, - 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, - 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, - 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, - 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, - 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, - 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, - 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xca, - 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, - 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, - 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, - 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, - 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, - 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, - 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, - 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, + 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, + 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, + 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x16, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, + 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, + 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xd4, 0x05, 0x0a, + 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x07, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, + 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, + 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, + 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x6f, 0x72, 0x22, 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, + 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, + 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, + 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x4a, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, - 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, - 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, - 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, - 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, - 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, - 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, - 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0c, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x73, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, - 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, - 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, - 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, - 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, + 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, + 0x16, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, + 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, + 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, + 0x0a, 0x14, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0e, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, + 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf9, + 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x70, + 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, - 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, - 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, - 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, 0x0a, - 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x68, - 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x52, - 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x22, - 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, - 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, - 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, - 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, 0x18, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x20, + 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, + 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, + 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, + 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, + 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, + 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, + 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, + 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, + 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, + 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, + 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, + 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, + 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, - 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, - 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, + 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, + 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, + 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, - 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, - 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x03, 0x0a, 0x17, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, - 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x10, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, - 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, - 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, - 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, - 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, - 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, - 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, 0x52, 0x10, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, - 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x22, 0xc6, 0x03, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, + 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, - 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, - 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, - 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, - 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, - 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4e, 0x0a, 0x1a, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xd5, 0x04, 0x0a, + 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, + 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x49, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, + 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, + 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, + 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x22, 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, + 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, + 0x0d, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, + 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x17, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, + 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x6c, 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, + 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, + 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, + 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x10, 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, - 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, - 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, - 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, - 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, - 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, - 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, - 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, - 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, - 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, - 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, - 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, - 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, - 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, - 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, - 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, - 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, - 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, - 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, - 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, - 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, - 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, - 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, - 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, - 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, - 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, - 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, - 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, - 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, - 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, + 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, + 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, + 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xb3, 0x03, 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, + 0x63, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, + 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, + 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, + 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, + 0x11, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, + 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x6c, 0x73, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x12, + 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, + 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8c, 0x05, 0x0a, + 0x0c, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, + 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, + 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, + 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, + 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, - 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x0e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, + 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x10, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, + 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, + 0x73, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, + 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x61, 0x73, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x40, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf5, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, + 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, + 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, @@ -100056,101 +99659,98 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, + 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, @@ -100159,97 +99759,94 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, - 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, + 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, + 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -100258,91 +99855,88 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, - 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, + 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, + 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x03, 0x0a, 0x11, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, + 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, @@ -100351,94 +99945,91 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, - 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, - 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x03, 0x0a, + 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, @@ -100447,38 +100038,135 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, - 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, + 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe6, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, + 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -100486,47 +100174,96 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, - 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, + 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x8e, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -100536,10 +100273,60 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x6f, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, + 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, @@ -100547,303 +100334,95 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, - 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, @@ -100852,99 +100431,96 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, + 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, + 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, + 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, @@ -100954,99 +100530,96 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, + 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, + 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, @@ -101055,120 +100628,117 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa0, 0x04, - 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfa, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, - 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, - 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x87, 0x01, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, - 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, + 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, @@ -101177,35 +100747,84 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, + 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, @@ -101213,156 +100832,101 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, - 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, + 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, + 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, - 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, - 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, + 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, @@ -101371,98 +100935,95 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, + 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, - 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, + 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -101471,101 +101032,98 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -101574,97 +101132,94 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, - 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, - 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, + 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, + 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, + 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, + 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, + 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, @@ -101673,98 +101228,95 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, + 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, @@ -101773,101 +101325,98 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, - 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, - 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, - 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, + 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x93, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -101876,99 +101425,96 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x84, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, - 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, + 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, + 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, + 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, @@ -101977,46 +101523,90 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, - 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, + 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, + 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, + 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, + 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -102024,142 +101614,92 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x12, - 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, + 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, - 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, + 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, @@ -102168,102 +101708,99 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, - 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, @@ -102273,415 +101810,403 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, + 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, @@ -102691,100 +102216,97 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, - 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -102793,102 +102315,99 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, + 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x2c, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, @@ -102898,103 +102417,100 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x94, 0x04, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, + 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, @@ -103003,94 +102519,91 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, - 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103099,94 +102612,91 @@ var file_otg_proto_rawDesc = []byte{ 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, + 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, - 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, - 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, @@ -103195,94 +102705,91 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, - 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, + 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, - 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xba, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x4e, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, @@ -103291,94 +102798,91 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, - 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, - 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, + 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, - 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, @@ -103387,93 +102891,90 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, + 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, - 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, @@ -103482,93 +102983,90 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, + 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, - 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, + 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, - 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103577,189 +103075,183 @@ var file_otg_proto_rawDesc = []byte{ 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, - 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, + 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, - 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, - 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x42, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103768,94 +103260,91 @@ var file_otg_proto_rawDesc = []byte{ 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, @@ -103887,98 +103376,95 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, - 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -103987,95 +103473,92 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, @@ -104106,96 +103589,93 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, - 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, @@ -104204,284 +103684,134 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, - 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, - 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, @@ -104489,51 +103819,93 @@ var file_otg_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, + 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -104541,56 +103913,152 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -104599,39 +104067,88 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, + 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, @@ -104640,59 +104157,7 @@ var file_otg_proto_rawDesc = []byte{ 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, - 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, @@ -104702,108 +104167,105 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, - 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, 0x0a, + 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x04, 0x0a, 0x26, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9b, 0x01, + 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x99, 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, @@ -104813,97 +104275,40 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x59, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf6, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, @@ -104911,9 +104316,63 @@ var file_otg_proto_rawDesc = []byte{ 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, + 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa7, + 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xad, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -104922,100 +104381,97 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, + 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, - 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, + 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, - 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, - 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, @@ -105024,96 +104480,93 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, + 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, - 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, - 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, + 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, + 0x65, 0x31, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, + 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, @@ -105122,100 +104575,97 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, - 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, @@ -105224,98 +104674,95 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, - 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, + 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, @@ -105324,86 +104771,36 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, + 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -105412,8 +104809,55 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, + 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, + 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, @@ -105423,140 +104867,38 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, @@ -105564,163 +104906,256 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, - 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, + 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, - 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, - 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, + 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, @@ -105730,103 +105165,100 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, - 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, - 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, + 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, + 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, @@ -105835,96 +105267,93 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, + 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, @@ -105957,102 +105386,99 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, + 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -106086,107 +105512,104 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x04, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, + 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, - 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, + 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, + 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, + 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, @@ -106196,140 +105619,38 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, - 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, - 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -106337,63 +105658,159 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x9c, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf6, + 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, @@ -106450,94 +105867,91 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, + 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, @@ -106546,100 +105960,97 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x89, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, + 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, - 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, @@ -106648,95 +106059,92 @@ var file_otg_proto_rawDesc = []byte{ 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, - 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, + 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, @@ -106769,99 +106177,96 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, - 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xeb, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, @@ -106870,103 +106275,100 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, - 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, - 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, - 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, - 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, + 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, @@ -106975,180 +106377,178 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, - 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, - 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, - 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, - 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, - 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, + 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, + 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, + 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, + 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -122756,8 +122156,6 @@ func file_otg_proto_init() { } } } - file_otg_proto_msgTypes[0].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[1].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[2].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[3].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[4].OneofWrappers = []interface{}{} @@ -122784,10 +122182,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[26].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[27].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[28].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[29].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[30].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[31].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[32].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[33].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[34].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[35].OneofWrappers = []interface{}{} @@ -122809,12 +122203,14 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[51].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[52].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[54].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[55].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[56].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[57].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[60].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[61].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[63].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[64].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[65].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[66].OneofWrappers = []interface{}{} @@ -122880,6 +122276,7 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[126].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[127].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[128].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[129].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[130].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[131].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[132].OneofWrappers = []interface{}{} @@ -122910,31 +122307,11 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[160].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[161].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[162].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[163].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[164].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[165].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[166].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[167].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[168].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[169].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[170].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[171].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[172].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[173].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[174].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[175].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[176].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[177].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[178].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[179].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[180].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[181].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[182].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[183].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[184].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[185].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[186].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[187].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[188].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[189].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[190].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[191].OneofWrappers = []interface{}{} @@ -122970,25 +122347,31 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[225].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[226].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[227].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[228].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[229].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[230].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[231].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[232].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[233].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[234].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[235].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[236].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[237].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[238].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[239].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[240].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[241].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[243].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[245].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[246].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[247].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[249].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[251].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[252].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[253].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[254].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[255].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[256].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[258].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[259].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[260].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[261].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[262].OneofWrappers = []interface{}{} @@ -123032,6 +122415,7 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[321].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[322].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[323].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[324].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[325].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[326].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[327].OneofWrappers = []interface{}{} diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index 4fe971a5..cfa9e547 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.5 +/* Open Traffic Generator API 0.13.0 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -42,10 +42,10 @@ message Config { repeated Flow flows = 6; // Description missing in models - optional Event events = 7; + Event events = 7; // Description missing in models - optional ConfigOptions options = 8; + ConfigOptions options = 8; // LLDP protocol that will be configured on traffic generator. repeated Lldp lldp = 9; @@ -55,10 +55,10 @@ message Config { message ConfigOptions { // Description missing in models - optional PortOptions port_options = 1; + PortOptions port_options = 1; // Description missing in models - optional ProtocolOptions protocol_options = 2; + ProtocolOptions protocol_options = 2; } // An abstract test port. @@ -79,7 +79,7 @@ message Port { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 2; + optional string name = 2; } // Common port options that apply to all configured Port objects. @@ -99,7 +99,7 @@ message Lag { repeated LagPort ports = 1; // Description missing in models - optional LagProtocol protocol = 2; + LagProtocol protocol = 2; // Specifies the mininum number of member interfaces that must be active for the aggregate // interface to be available. @@ -112,7 +112,7 @@ message Lag { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 4; + optional string name = 4; } // The container for a port's ethernet interface and LAG protocol settings @@ -128,10 +128,10 @@ message LagPort { // - /components/schemas/Port/properties/name // // required = true - string port_name = 1; + optional string port_name = 1; // Description missing in models - optional LagPortLacp lacp = 2; + LagPortLacp lacp = 2; // Description missing in models // required = true @@ -153,10 +153,10 @@ message LagProtocol { optional Choice.Enum choice = 1; // Description missing in models - optional LagProtocolLacp lacp = 2; + LagProtocolLacp lacp = 2; // Description missing in models - optional LagProtocolStatic static = 3; + LagProtocolStatic static = 3; } // The container for static link aggregation protocol settings. @@ -223,7 +223,7 @@ message DeviceEthernetBase { // Media Access Control address. // required = true - string mac = 1; + optional string mac = 1; // Maximum Transmission Unit. // default = 1500 @@ -235,14 +235,14 @@ message DeviceEthernetBase { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 4; + optional string name = 4; } // An Ethernet interface with IPv4 and IPv6 addresses. message DeviceEthernet { // Device connection to physical, LAG or another device. - optional EthernetConnection connection = 2; + EthernetConnection connection = 2; // List of IPv4 addresses and their gateways. repeated DeviceIpv4 ipv4_addresses = 3; @@ -253,7 +253,7 @@ message DeviceEthernet { // Media Access Control address. // required = true - string mac = 5; + optional string mac = 5; // Maximum Transmission Unit. // default = 1500 @@ -265,7 +265,7 @@ message DeviceEthernet { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 8; + optional string name = 8; } // Ethernet interface connection to a port, LAG or VXLAN tunnel. @@ -347,7 +347,7 @@ message DeviceVlan { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 4; + optional string name = 4; } // An IPv4 interface with gateway @@ -355,14 +355,14 @@ message DeviceIpv4 { // The IPv4 address of the gateway // required = true - string gateway = 1; + optional string gateway = 1; // Description missing in models - optional DeviceIpv4GatewayMAC gateway_mac = 2; + DeviceIpv4GatewayMAC gateway_mac = 2; // The IPv4 address // required = true - string address = 3; + optional string address = 3; // The prefix of the IPv4 address. // default = 24 @@ -371,7 +371,7 @@ message DeviceIpv4 { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 5; + optional string name = 5; } // An IPv4 Loopback interface. @@ -388,7 +388,7 @@ message DeviceIpv4Loopback { // - /components/schemas/Device.Ethernet/properties/name // // required = true - string eth_name = 1; + optional string eth_name = 1; // The IPv4 Loopback address with prefix length of 32. // default = 0.0.0.0 @@ -397,7 +397,7 @@ message DeviceIpv4Loopback { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 3; + optional string name = 3; } // By default auto(resolved gateway mac) is set. Setting a value would mean that ARP @@ -433,14 +433,14 @@ message DeviceIpv6 { // The IPv6 gateway address. // required = true - string gateway = 1; + optional string gateway = 1; // Description missing in models - optional DeviceIpv6GatewayMAC gateway_mac = 2; + DeviceIpv6GatewayMAC gateway_mac = 2; // The IPv6 address. // required = true - string address = 3; + optional string address = 3; // The network prefix. // default = 64 @@ -449,7 +449,7 @@ message DeviceIpv6 { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 5; + optional string name = 5; } // An IPv6 Loopback interface @@ -466,7 +466,7 @@ message DeviceIpv6Loopback { // - /components/schemas/Device.Ethernet/properties/name // // required = true - string eth_name = 1; + optional string eth_name = 1; // The IPv6 Loopback address with prefix length of 128. // default = ::0 @@ -475,7 +475,7 @@ message DeviceIpv6Loopback { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 3; + optional string name = 3; } // By default auto(resolved gateway mac) is set. Setting a value would mean that ND @@ -569,15 +569,15 @@ message Layer1 { optional bool auto_negotiate = 7; // Description missing in models - optional Layer1AutoNegotiation auto_negotiation = 8; + Layer1AutoNegotiation auto_negotiation = 8; // Description missing in models - optional Layer1FlowControl flow_control = 9; + Layer1FlowControl flow_control = 9; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 10; + optional string name = 10; } // Configuration for auto negotiation settings @@ -639,10 +639,10 @@ message Layer1FlowControl { optional Choice.Enum choice = 2; // Description missing in models - optional Layer1Ieee8021qbb ieee_802_1qbb = 3; + Layer1Ieee8021qbb ieee_802_1qbb = 3; // Description missing in models - optional Layer1Ieee8023x ieee_802_3x = 4; + Layer1Ieee8023x ieee_802_3x = 4; } // A container for ieee 802.3x rx pause settings @@ -749,7 +749,7 @@ message Capture { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 6; + optional string name = 6; } // Configuration for capture filters @@ -772,19 +772,19 @@ message CaptureFilter { // Offset from last filter in the list. If no filters are present it is offset from // position 0. Multiple custom filters can be present, the length of each custom filter // is the length of the value being filtered. - optional CaptureCustom custom = 2; + CaptureCustom custom = 2; // Description missing in models - optional CaptureEthernet ethernet = 3; + CaptureEthernet ethernet = 3; // Description missing in models - optional CaptureVlan vlan = 4; + CaptureVlan vlan = 4; // Description missing in models - optional CaptureIpv4 ipv4 = 5; + CaptureIpv4 ipv4 = 5; // Description missing in models - optional CaptureIpv6 ipv6 = 6; + CaptureIpv6 ipv6 = 6; } // Description missing in models @@ -830,106 +830,106 @@ message CaptureField { message CaptureEthernet { // Description missing in models - optional CaptureField src = 1; + CaptureField src = 1; // Description missing in models - optional CaptureField dst = 2; + CaptureField dst = 2; // Description missing in models - optional CaptureField ether_type = 3; + CaptureField ether_type = 3; // Description missing in models - optional CaptureField pfc_queue = 4; + CaptureField pfc_queue = 4; } // Description missing in models message CaptureVlan { // Description missing in models - optional CaptureField priority = 1; + CaptureField priority = 1; // Description missing in models - optional CaptureField cfi = 2; + CaptureField cfi = 2; // Description missing in models - optional CaptureField id = 3; + CaptureField id = 3; // Description missing in models - optional CaptureField protocol = 4; + CaptureField protocol = 4; } // Description missing in models message CaptureIpv4 { // Description missing in models - optional CaptureField version = 1; + CaptureField version = 1; // Description missing in models - optional CaptureField header_length = 2; + CaptureField header_length = 2; // Description missing in models - optional CaptureField priority = 3; + CaptureField priority = 3; // Description missing in models - optional CaptureField total_length = 4; + CaptureField total_length = 4; // Description missing in models - optional CaptureField identification = 5; + CaptureField identification = 5; // Description missing in models - optional CaptureField reserved = 6; + CaptureField reserved = 6; // Description missing in models - optional CaptureField dont_fragment = 7; + CaptureField dont_fragment = 7; // Description missing in models - optional CaptureField more_fragments = 8; + CaptureField more_fragments = 8; // Description missing in models - optional CaptureField fragment_offset = 9; + CaptureField fragment_offset = 9; // Description missing in models - optional CaptureField time_to_live = 10; + CaptureField time_to_live = 10; // Description missing in models - optional CaptureField protocol = 11; + CaptureField protocol = 11; // Description missing in models - optional CaptureField header_checksum = 12; + CaptureField header_checksum = 12; // Description missing in models - optional CaptureField src = 13; + CaptureField src = 13; // Description missing in models - optional CaptureField dst = 14; + CaptureField dst = 14; } // Description missing in models message CaptureIpv6 { // Description missing in models - optional CaptureField version = 1; + CaptureField version = 1; // Description missing in models - optional CaptureField traffic_class = 2; + CaptureField traffic_class = 2; // Description missing in models - optional CaptureField flow_label = 3; + CaptureField flow_label = 3; // Description missing in models - optional CaptureField payload_length = 4; + CaptureField payload_length = 4; // Description missing in models - optional CaptureField next_header = 5; + CaptureField next_header = 5; // Description missing in models - optional CaptureField hop_limit = 6; + CaptureField hop_limit = 6; // Description missing in models - optional CaptureField src = 7; + CaptureField src = 7; // Description missing in models - optional CaptureField dst = 8; + CaptureField dst = 8; } // A container for emulated interfaces, loopback interfaces and protocol configurations. @@ -948,22 +948,22 @@ message Device { // The properties of an IS-IS router and its children, such as IS-IS interfaces and // route ranges. - optional DeviceIsisRouter isis = 4; + DeviceIsisRouter isis = 4; // The properties of BGP router and its children, such as BGPv4, BGPv6 peers and their // route ranges. - optional DeviceBgpRouter bgp = 5; + DeviceBgpRouter bgp = 5; // Configuration of VXLAN tunnel interfaces RFC Ref: https://datatracker.ietf.org/doc/html/rfc7348 - optional DeviceVxlan vxlan = 6; + DeviceVxlan vxlan = 6; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 7; + optional string name = 7; // The properties of an RSVP router and its children. - optional DeviceRsvp rsvp = 8; + DeviceRsvp rsvp = 8; } // Common options that apply to all configured protocols and interfaces. @@ -982,23 +982,23 @@ message DeviceIsisRouter { // This contains the properties of a Multi-Instance-capable routers or MI-RTR. Each // router can emulate one ISIS instance at a time. - optional DeviceIsisMultiInstance instance = 1; + DeviceIsisMultiInstance instance = 1; // The System ID for this emulated ISIS router, e.g. 640100010000. // required = true - string system_id = 2; + optional string system_id = 2; // List of ISIS interfaces for this router. repeated IsisInterface interfaces = 3; // Contains basic properties of an ISIS Router. - optional IsisBasic basic = 4; + IsisBasic basic = 4; // Contains advance properties of an ISIS Router.. - optional IsisAdvanced advanced = 5; + IsisAdvanced advanced = 5; // ISIS Router authentication properties. - optional IsisAuthentication router_auth = 6; + IsisAuthentication router_auth = 6; // Emulated ISIS IPv4 routes. repeated IsisV4RouteRange v4_routes = 7; @@ -1009,7 +1009,7 @@ message DeviceIsisRouter { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 9; + optional string name = 9; } // This container properties of an Multi-Instance-capable router (MI-RTR). @@ -1039,7 +1039,7 @@ message IsisInterface { // - /components/schemas/Device.Ethernet/properties/name // // required = true - string eth_name = 1; + optional string eth_name = 1; // The default metric cost for the interface. // default = 10 @@ -1070,10 +1070,10 @@ message IsisInterface { optional LevelType.Enum level_type = 4; // Settings of Level 1 Hello. - optional IsisInterfaceLevel l1_settings = 5; + IsisInterfaceLevel l1_settings = 5; // Settings of Level 2 Hello. - optional IsisInterfaceLevel l2_settings = 6; + IsisInterfaceLevel l2_settings = 6; // Contains the properties of multiple topologies. repeated IsisMT multi_topology_ids = 7; @@ -1083,13 +1083,13 @@ message IsisInterface { // The Circuit authentication method used for the interfaces on this emulated ISIS v4/v6 // router. - optional IsisInterfaceAuthentication authentication = 9; + IsisInterfaceAuthentication authentication = 9; // Optional container for advanced interface properties. - optional IsisInterfaceAdvanced advanced = 10; + IsisInterfaceAdvanced advanced = 10; // Link protection on the ISIS link between two interfaces. - optional IsisInterfaceLinkProtection link_protection = 11; + IsisInterfaceLinkProtection link_protection = 11; // This contains list of SRLG values for the link between two interfaces. repeated uint32 srlg_values = 12; @@ -1097,7 +1097,7 @@ message IsisInterface { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 13; + optional string name = 13; } // Configuration for the properties of Level 1 Hello. @@ -1157,7 +1157,7 @@ message LinkStateTE { optional uint32 max_reservable_bandwidth = 4; // Configuration of bandwidths of priority 0 through priority 7. - optional LinkStatepriorityBandwidths priority_bandwidths = 5; + LinkStatepriorityBandwidths priority_bandwidths = 5; } // Specifies the amount of bandwidth that can be reserved with a setup priority of 0 @@ -1212,7 +1212,7 @@ message IsisInterfaceAuthentication { } // The circuit authentication method. // required = true - AuthType.Enum auth_type = 1; + optional AuthType.Enum auth_type = 1; // MD5 key to be used for authentication. optional string md5 = 2; @@ -1383,11 +1383,11 @@ message IsisAuthentication { // The Area authentication method used for the emulated ISIS router. // This is used for L1 LSPs. - optional IsisAuthenticationBase area_auth = 2; + IsisAuthenticationBase area_auth = 2; // The Domain authentication method used for the emulated ISIS router. // This is used for L2 LSPs. - optional IsisAuthenticationBase domain_auth = 3; + IsisAuthenticationBase domain_auth = 3; } // Optional container for ISIS authentication properties. @@ -1402,7 +1402,7 @@ message IsisAuthenticationBase { } // The authentication method. // required = true - AuthType.Enum auth_type = 1; + optional AuthType.Enum auth_type = 1; // Authentication as an MD5 key. optional string md5 = 2; @@ -1459,7 +1459,7 @@ message IsisV4RouteRange { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 5; + optional string name = 5; // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags // will be advertised or not. @@ -1484,7 +1484,7 @@ message V4RouteAddress { // The starting address of the network. // required = true - string address = 1; + optional string address = 1; // The IPv4 network prefix length to be applied to the address. // default = 24 @@ -1505,7 +1505,7 @@ message V6RouteAddress { // The starting address of the network. // required = true - string address = 1; + optional string address = 1; // The IPv6 network prefix length to be applied to the address. // default = 64 @@ -1526,7 +1526,7 @@ message MACRouteAddress { // The starting address of the MAC Range. // required = true - string address = 1; + optional string address = 1; // The MAC prefix length to be applied to the address. // default = 48 @@ -1590,7 +1590,7 @@ message IsisV6RouteRange { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 5; + optional string name = 5; // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags // will be advertised or not. @@ -1616,7 +1616,7 @@ message DeviceBgpRouter { // The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is // often represented by an IPv4 address. // required = true - string router_id = 1; + optional string router_id = 1; // This contains an array of references to IPv4 interfaces, each of which will have // list of peers to different destinations. @@ -1748,7 +1748,7 @@ message BgpV4Peer { // IPv4 address of the BGP peer for the session. // required = true - string peer_address = 1; + optional string peer_address = 1; // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments // (ES) Per BGP Peer for IPv4 Address Family Identifier (AFI). @@ -1787,11 +1787,11 @@ message BgpV4Peer { // attribute in 'as_path' field in any Route Range should be changed from default value // 'do_not_include_local_as' to any other value. // required = true - AsType.Enum as_type = 3; + optional AsType.Enum as_type = 3; // Autonomous System Number (AS number or ASN) // required = true - uint32 as_number = 4; + optional uint32 as_number = 4; message AsNumberWidth { enum Enum { @@ -1806,13 +1806,13 @@ message BgpV4Peer { optional AsNumberWidth.Enum as_number_width = 5; // Description missing in models - optional BgpAdvanced advanced = 6; + BgpAdvanced advanced = 6; // Description missing in models - optional BgpCapability capability = 7; + BgpCapability capability = 7; // Description missing in models - optional BgpLearnedInformationFilter learned_information_filter = 8; + BgpLearnedInformationFilter learned_information_filter = 8; // Emulated BGPv4 route ranges. repeated BgpV4RouteRange v4_routes = 9; @@ -1833,10 +1833,10 @@ message BgpV4Peer { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 13; + optional string name = 13; // Description missing in models - optional BgpGracefulRestart graceful_restart = 14; + BgpGracefulRestart graceful_restart = 14; } // Configuration for emulated BGPv4 peers and routes on a single IPv4 interface. @@ -1855,7 +1855,7 @@ message BgpV4Interface { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - string ipv4_name = 1; + optional string ipv4_name = 1; // This contains the list of BGPv4 peers configured on this interface. repeated BgpV4Peer peers = 2; @@ -1867,7 +1867,7 @@ message BgpV4Interface { message BgpV4EthernetSegment { // Designated Forwarder (DF) election configuration. - optional BgpEthernetSegmentDfElection df_election = 1; + BgpEthernetSegmentDfElection df_election = 1; // This contains the list of EVIs. repeated BgpV4EvpnEvis evis = 2; @@ -1894,7 +1894,7 @@ message BgpV4EthernetSegment { optional uint32 esi_label = 5; // Description missing in models - optional BgpRouteAdvanced advanced = 6; + BgpRouteAdvanced advanced = 6; // Optional community settings. repeated BgpCommunity communities = 7; @@ -1929,7 +1929,7 @@ message BgpV4EthernetSegment { repeated BgpExtCommunity ext_communities = 8; // Optional AS PATH settings. - optional BgpAsPath as_path = 9; + BgpAsPath as_path = 9; } // Configuration for Designated Forwarder (DF) election among the Provider Edge (PE) @@ -2143,7 +2143,7 @@ message BgpV4EvpnEvis { optional Choice.Enum choice = 1; // EVPN VXLAN instance to be configured per Ethernet Segment. - optional BgpV4EviVxlan evi_vxlan = 2; + BgpV4EviVxlan evi_vxlan = 2; } // Configuration for BGP EVPN EVI. Advertises following routes - @@ -2180,7 +2180,7 @@ message BgpV4EviVxlan { // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying // an EVI. Example - for the as_2octet 60005:100. - optional BgpRouteDistinguisher route_distinguisher = 5; + BgpRouteDistinguisher route_distinguisher = 5; // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with // this EVI. @@ -2196,7 +2196,7 @@ message BgpV4EviVxlan { repeated BgpRouteTarget l3_route_target_import = 9; // Description missing in models - optional BgpRouteAdvanced advanced = 10; + BgpRouteAdvanced advanced = 10; // Optional community settings. repeated BgpCommunity communities = 11; @@ -2231,7 +2231,7 @@ message BgpV4EviVxlan { repeated BgpExtCommunity ext_communities = 12; // Optional AS PATH settings. - optional BgpAsPath as_path = 13; + BgpAsPath as_path = 13; } // Configuration for Broadcast Domains per EVI. @@ -2261,7 +2261,7 @@ message BgpV4EviVxlanBroadcastDomain { message BgpCMacIpRange { // Host MAC address range per Broadcast Domain. - optional MACRouteAddress mac_addresses = 1; + MACRouteAddress mac_addresses = 1; // Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement // Route (Type 2) @@ -2269,10 +2269,10 @@ message BgpCMacIpRange { optional uint32 l2vni = 2; // Host IPv4 address range per Broadcast Domain. - optional V4RouteAddress ipv4_addresses = 3; + V4RouteAddress ipv4_addresses = 3; // Host IPv6 address range per Broadcast Domain. - optional V6RouteAddress ipv6_addresses = 4; + V6RouteAddress ipv6_addresses = 4; // Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement // Route (Type 2). @@ -2284,7 +2284,7 @@ message BgpCMacIpRange { optional bool include_default_gateway = 6; // Description missing in models - optional BgpRouteAdvanced advanced = 7; + BgpRouteAdvanced advanced = 7; // Optional community settings. repeated BgpCommunity communities = 8; @@ -2319,12 +2319,12 @@ message BgpCMacIpRange { repeated BgpExtCommunity ext_communities = 9; // Optional AS PATH settings. - optional BgpAsPath as_path = 10; + BgpAsPath as_path = 10; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 11; + optional string name = 11; } // BGP Route Distinguisher. @@ -2579,21 +2579,21 @@ message BgpV4RouteRange { optional string next_hop_ipv6_address = 5; // Description missing in models - optional BgpRouteAdvanced advanced = 6; + BgpRouteAdvanced advanced = 6; // Optional community settings. repeated BgpCommunity communities = 7; // Description missing in models - optional BgpAsPath as_path = 8; + BgpAsPath as_path = 8; // Description missing in models - optional BgpAddPath add_path = 9; + BgpAddPath add_path = 9; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 10; + optional string name = 10; // Deprecated: This property is deprecated in favor of property extended_communities // @@ -2677,25 +2677,25 @@ message BgpExtendedCommunity { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitive2OctetAsType transitive_2octet_as_type = 2; + BgpExtendedCommunityTransitive2OctetAsType transitive_2octet_as_type = 2; // Description missing in models - optional BgpExtendedCommunityTransitiveIpv4AddressType transitive_ipv4_address_type = 3; + BgpExtendedCommunityTransitiveIpv4AddressType transitive_ipv4_address_type = 3; // Description missing in models - optional BgpExtendedCommunityTransitive4OctetAsType transitive_4octet_as_type = 4; + BgpExtendedCommunityTransitive4OctetAsType transitive_4octet_as_type = 4; // Description missing in models - optional BgpExtendedCommunityTransitiveOpaqueType transitive_opaque_type = 5; + BgpExtendedCommunityTransitiveOpaqueType transitive_opaque_type = 5; // Description missing in models - optional BgpExtendedCommunityTransitiveEvpnType transitive_evpn_type = 6; + BgpExtendedCommunityTransitiveEvpnType transitive_evpn_type = 6; // Description missing in models - optional BgpExtendedCommunityNonTransitive2OctetAsType non_transitive_2octet_as_type = 7; + BgpExtendedCommunityNonTransitive2OctetAsType non_transitive_2octet_as_type = 7; // Description missing in models - optional BgpExtendedCommunityCustomType custom = 8; + BgpExtendedCommunityCustomType custom = 8; } // The Route Target Community identifies one or more routers that may receive a set @@ -2745,10 +2745,10 @@ message BgpExtendedCommunityTransitive2OctetAsType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget route_target_subtype = 2; + BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget route_target_subtype = 2; // Description missing in models - optional BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin route_origin_subtype = 3; + BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin route_origin_subtype = 3; } // The Route Origin Community identifies one or more routers that inject a set of routes @@ -2797,10 +2797,10 @@ message BgpExtendedCommunityTransitiveIpv4AddressType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget route_target_subtype = 2; + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget route_target_subtype = 2; // Description missing in models - optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin route_origin_subtype = 3; + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin route_origin_subtype = 3; } // The Route Target Community identifies one or more routers that may receive a set @@ -2850,10 +2850,10 @@ message BgpExtendedCommunityTransitive4OctetAsType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget route_target_subtype = 2; + BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget route_target_subtype = 2; // Description missing in models - optional BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin route_origin_subtype = 3; + BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin route_origin_subtype = 3; } // The Color Community contains locally administrator defined 'color' value which is @@ -2911,10 +2911,10 @@ message BgpExtendedCommunityTransitiveOpaqueType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitiveOpaqueTypeColor color_subtype = 2; + BgpExtendedCommunityTransitiveOpaqueTypeColor color_subtype = 2; // Description missing in models - optional BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation encapsulation_subtype = 3; + BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation encapsulation_subtype = 3; } // The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN @@ -2940,7 +2940,7 @@ message BgpExtendedCommunityTransitiveEvpnType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityTransitiveEvpnTypeRouterMac router_mac_subtype = 2; + BgpExtendedCommunityTransitiveEvpnTypeRouterMac router_mac_subtype = 2; } // The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. @@ -2974,7 +2974,7 @@ message BgpExtendedCommunityNonTransitive2OctetAsType { optional Choice.Enum choice = 1; // Description missing in models - optional BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth link_bandwidth_subtype = 2; + BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth link_bandwidth_subtype = 2; } // Add a custom Extended Community with a combination of types , sub-types and values @@ -3042,21 +3042,21 @@ message BgpV6RouteRange { optional string next_hop_ipv6_address = 5; // Description missing in models - optional BgpRouteAdvanced advanced = 6; + BgpRouteAdvanced advanced = 6; // Optional community settings. repeated BgpCommunity communities = 7; // Description missing in models - optional BgpAsPath as_path = 8; + BgpAsPath as_path = 8; // Description missing in models - optional BgpAddPath add_path = 9; + BgpAddPath add_path = 9; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 10; + optional string name = 10; // Deprecated: This property is deprecated in favor of property extended_communities // @@ -3124,7 +3124,7 @@ message BgpSrteV4Policy { // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected // on the basis of the SR Policy type (AFI). // required = true - string ipv4_endpoint = 3; + optional string ipv4_endpoint = 3; message NextHopMode { enum Enum { @@ -3161,13 +3161,13 @@ message BgpSrteV4Policy { optional string next_hop_ipv6_address = 7; // Description missing in models - optional BgpRouteAdvanced advanced = 8; + BgpRouteAdvanced advanced = 8; // Description missing in models - optional BgpAddPath add_path = 9; + BgpAddPath add_path = 9; // Description missing in models - optional BgpAsPath as_path = 10; + BgpAsPath as_path = 10; // Optional Community settings. repeated BgpCommunity communities = 11; @@ -3207,7 +3207,7 @@ message BgpSrteV4Policy { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 14; + optional string name = 14; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3221,25 +3221,25 @@ message BgpSrteV4Policy { message BgpSrteV4TunnelTlv { // Description missing in models - optional BgpSrteRemoteEndpointSubTlv remote_endpoint_sub_tlv = 1; + BgpSrteRemoteEndpointSubTlv remote_endpoint_sub_tlv = 1; // Description missing in models - optional BgpSrteColorSubTlv color_sub_tlv = 2; + BgpSrteColorSubTlv color_sub_tlv = 2; // Description missing in models - optional BgpSrteBindingSubTlv binding_sub_tlv = 3; + BgpSrteBindingSubTlv binding_sub_tlv = 3; // Description missing in models - optional BgpSrtePreferenceSubTlv preference_sub_tlv = 4; + BgpSrtePreferenceSubTlv preference_sub_tlv = 4; // Description missing in models - optional BgpSrtePolicyPrioritySubTlv policy_priority_sub_tlv = 5; + BgpSrtePolicyPrioritySubTlv policy_priority_sub_tlv = 5; // Description missing in models - optional BgpSrtePolicyNameSubTlv policy_name_sub_tlv = 6; + BgpSrtePolicyNameSubTlv policy_name_sub_tlv = 6; // Description missing in models - optional BgpSrteExplicitNullLabelPolicySubTlv explicit_null_label_policy_sub_tlv = 7; + BgpSrteExplicitNullLabelPolicySubTlv explicit_null_label_policy_sub_tlv = 7; // Description missing in models repeated BgpSrteSegmentList segment_lists = 8; @@ -3247,7 +3247,7 @@ message BgpSrteV4TunnelTlv { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 9; + optional string name = 9; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3384,7 +3384,7 @@ message BgpSrteSegmentList { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 3; + optional string name = 3; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3430,45 +3430,45 @@ message BgpSrteSegment { // SID for SRv6. // Type K: IPv6 Local and Remote addresses for SRv6. // required = true - SegmentType.Enum segment_type = 1; + optional SegmentType.Enum segment_type = 1; // Description missing in models - optional BgpSrteSegmentATypeSubTlv type_a = 2; + BgpSrteSegmentATypeSubTlv type_a = 2; // Description missing in models - optional BgpSrteSegmentBTypeSubTlv type_b = 3; + BgpSrteSegmentBTypeSubTlv type_b = 3; // Description missing in models - optional BgpSrteSegmentCTypeSubTlv type_c = 4; + BgpSrteSegmentCTypeSubTlv type_c = 4; // Description missing in models - optional BgpSrteSegmentDTypeSubTlv type_d = 5; + BgpSrteSegmentDTypeSubTlv type_d = 5; // Description missing in models - optional BgpSrteSegmentETypeSubTlv type_e = 6; + BgpSrteSegmentETypeSubTlv type_e = 6; // Description missing in models - optional BgpSrteSegmentFTypeSubTlv type_f = 7; + BgpSrteSegmentFTypeSubTlv type_f = 7; // Description missing in models - optional BgpSrteSegmentGTypeSubTlv type_g = 8; + BgpSrteSegmentGTypeSubTlv type_g = 8; // Description missing in models - optional BgpSrteSegmentHTypeSubTlv type_h = 9; + BgpSrteSegmentHTypeSubTlv type_h = 9; // Description missing in models - optional BgpSrteSegmentITypeSubTlv type_i = 10; + BgpSrteSegmentITypeSubTlv type_i = 10; // Description missing in models - optional BgpSrteSegmentJTypeSubTlv type_j = 11; + BgpSrteSegmentJTypeSubTlv type_j = 11; // Description missing in models - optional BgpSrteSegmentKTypeSubTlv type_k = 12; + BgpSrteSegmentKTypeSubTlv type_k = 12; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 13; + optional string name = 13; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3545,10 +3545,10 @@ message BgpSrteSegmentBTypeSubTlv { // SRv6 SID. // required = true - string srv6_sid = 2; + optional string srv6_sid = 2; // Optional SRv6 Endpoint Behavior and SID Structure. - optional BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 3; + BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 3; } // Type C: IPv4 Node Address with optional SID. @@ -3564,10 +3564,10 @@ message BgpSrteSegmentCTypeSubTlv { // IPv4 address representing a node. // required = true - string ipv4_node_address = 3; + optional string ipv4_node_address = 3; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 4; + BgpSrteSrMplsSid sr_mpls_sid = 4; } // Type D: IPv6 Node Address with optional SID for SR MPLS. @@ -3583,10 +3583,10 @@ message BgpSrteSegmentDTypeSubTlv { // IPv6 address representing a node. // required = true - string ipv6_node_address = 3; + optional string ipv6_node_address = 3; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 4; + BgpSrteSrMplsSid sr_mpls_sid = 4; } // Type E: IPv4 Address and Local Interface ID with optional SID @@ -3602,10 +3602,10 @@ message BgpSrteSegmentETypeSubTlv { // IPv4 address representing a node. // required = true - string ipv4_node_address = 3; + optional string ipv4_node_address = 3; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 4; + BgpSrteSrMplsSid sr_mpls_sid = 4; } // Type F: IPv4 Local and Remote addresses with optional SID. @@ -3617,14 +3617,14 @@ message BgpSrteSegmentFTypeSubTlv { // Local IPv4 Address. // required = true - string local_ipv4_address = 2; + optional string local_ipv4_address = 2; // Remote IPv4 Address. // required = true - string remote_ipv4_address = 3; + optional string remote_ipv4_address = 3; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 4; + BgpSrteSrMplsSid sr_mpls_sid = 4; } // Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for @@ -3641,7 +3641,7 @@ message BgpSrteSegmentGTypeSubTlv { // IPv6 address representing a node. // required = true - string local_ipv6_node_address = 3; + optional string local_ipv6_node_address = 3; // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 @@ -3649,10 +3649,10 @@ message BgpSrteSegmentGTypeSubTlv { // IPv6 address representing a node. // required = true - string remote_ipv6_node_address = 5; + optional string remote_ipv6_node_address = 5; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 6; + BgpSrteSrMplsSid sr_mpls_sid = 6; } // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. @@ -3664,14 +3664,14 @@ message BgpSrteSegmentHTypeSubTlv { // Local IPv6 Address. // required = true - string local_ipv6_address = 2; + optional string local_ipv6_address = 2; // Remote IPv6 Address. // required = true - string remote_ipv6_address = 3; + optional string remote_ipv6_address = 3; // Optional SR-MPLS SID. - optional BgpSrteSrMplsSid sr_mpls_sid = 4; + BgpSrteSrMplsSid sr_mpls_sid = 4; } // Type I: IPv6 Node Address with optional SRv6 SID. @@ -3683,13 +3683,13 @@ message BgpSrteSegmentITypeSubTlv { // IPv6 address representing a node. // required = true - string ipv6_node_address = 2; + optional string ipv6_node_address = 2; // Optional SRv6 SID. optional string srv6_sid = 3; // Optional SRv6 Endpoint Behavior and SID Structure. - optional BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 4; + BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 4; } // Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional @@ -3710,7 +3710,7 @@ message BgpSrteSegmentJTypeSubTlv { // IPv6 address representing a node. // required = true - string local_ipv6_node_address = 4; + optional string local_ipv6_node_address = 4; // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 @@ -3718,13 +3718,13 @@ message BgpSrteSegmentJTypeSubTlv { // IPv6 address representing a node. // required = true - string remote_ipv6_node_address = 6; + optional string remote_ipv6_node_address = 6; // Optional SRv6 SID. optional string srv6_sid = 7; // Optional SRv6 Endpoint Behavior and SID Structure. - optional BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 8; + BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 8; } // Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. @@ -3740,17 +3740,17 @@ message BgpSrteSegmentKTypeSubTlv { // IPv6 address representing a node. // required = true - string local_ipv6_address = 3; + optional string local_ipv6_address = 3; // IPv6 address representing a node. // required = true - string remote_ipv6_address = 4; + optional string remote_ipv6_address = 4; // Optional SRv6 SID. optional string srv6_sid = 5; // Optional SRv6 Endpoint Behavior and SID Structure. - optional BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 6; + BgpSrteSRv6SIDEndpointBehaviorAndStructure srv6_sid_endpoint_behavior = 6; } // Configuration for BGP Segment Routing Traffic Engineering policy. @@ -3770,7 +3770,7 @@ message BgpSrteV6Policy { // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected // on the basis of the SR Policy type (AFI). // required = true - string ipv6_endpoint = 3; + optional string ipv6_endpoint = 3; message NextHopMode { enum Enum { @@ -3809,13 +3809,13 @@ message BgpSrteV6Policy { optional string next_hop_ipv6_address = 7; // Description missing in models - optional BgpRouteAdvanced advanced = 8; + BgpRouteAdvanced advanced = 8; // Description missing in models - optional BgpAddPath add_path = 9; + BgpAddPath add_path = 9; // Description missing in models - optional BgpAsPath as_path = 10; + BgpAsPath as_path = 10; // Optional community settings. repeated BgpCommunity communities = 11; @@ -3855,7 +3855,7 @@ message BgpSrteV6Policy { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 14; + optional string name = 14; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3869,25 +3869,25 @@ message BgpSrteV6Policy { message BgpSrteV6TunnelTlv { // Description missing in models - optional BgpSrteRemoteEndpointSubTlv remote_endpoint_sub_tlv = 1; + BgpSrteRemoteEndpointSubTlv remote_endpoint_sub_tlv = 1; // Description missing in models - optional BgpSrteColorSubTlv color_sub_tlv = 2; + BgpSrteColorSubTlv color_sub_tlv = 2; // Description missing in models - optional BgpSrteBindingSubTlv binding_sub_tlv = 3; + BgpSrteBindingSubTlv binding_sub_tlv = 3; // Description missing in models - optional BgpSrtePreferenceSubTlv preference_sub_tlv = 4; + BgpSrtePreferenceSubTlv preference_sub_tlv = 4; // Description missing in models - optional BgpSrtePolicyPrioritySubTlv policy_priority_sub_tlv = 5; + BgpSrtePolicyPrioritySubTlv policy_priority_sub_tlv = 5; // Description missing in models - optional BgpSrtePolicyNameSubTlv policy_name_sub_tlv = 6; + BgpSrtePolicyNameSubTlv policy_name_sub_tlv = 6; // Description missing in models - optional BgpSrteExplicitNullLabelPolicySubTlv explicit_null_label_policy_sub_tlv = 7; + BgpSrteExplicitNullLabelPolicySubTlv explicit_null_label_policy_sub_tlv = 7; // Description missing in models repeated BgpSrteSegmentList segment_lists = 8; @@ -3895,7 +3895,7 @@ message BgpSrteV6TunnelTlv { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 9; + optional string name = 9; // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is @@ -3942,10 +3942,10 @@ message BgpV6Peer { // IPv6 address of the BGP peer for the session // required = true - string peer_address = 1; + optional string peer_address = 1; // Description missing in models - optional BgpV6SegmentRouting segment_routing = 2; + BgpV6SegmentRouting segment_routing = 2; // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). @@ -3984,11 +3984,11 @@ message BgpV6Peer { // attribute in 'as_path' field in any Route Range should be changed from default value // 'do_not_include_local_as' to any other value. // required = true - AsType.Enum as_type = 4; + optional AsType.Enum as_type = 4; // Autonomous System Number (AS number or ASN) // required = true - uint32 as_number = 5; + optional uint32 as_number = 5; message AsNumberWidth { enum Enum { @@ -4003,13 +4003,13 @@ message BgpV6Peer { optional AsNumberWidth.Enum as_number_width = 6; // Description missing in models - optional BgpAdvanced advanced = 7; + BgpAdvanced advanced = 7; // Description missing in models - optional BgpCapability capability = 8; + BgpCapability capability = 8; // Description missing in models - optional BgpLearnedInformationFilter learned_information_filter = 9; + BgpLearnedInformationFilter learned_information_filter = 9; // Emulated BGPv4 route ranges. repeated BgpV4RouteRange v4_routes = 10; @@ -4030,10 +4030,10 @@ message BgpV6Peer { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 14; + optional string name = 14; // Description missing in models - optional BgpGracefulRestart graceful_restart = 15; + BgpGracefulRestart graceful_restart = 15; } // Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. @@ -4052,7 +4052,7 @@ message BgpV6Interface { // - /components/schemas/Device.Ipv6Loopback/properties/name // // required = true - string ipv6_name = 1; + optional string ipv6_name = 1; // This contains the list of BGPv6 peers configured on this interface. repeated BgpV6Peer peers = 2; @@ -4100,7 +4100,7 @@ message BgpV6SegmentRouting { message BgpV6EthernetSegment { // Designated Forwarder (DF) election configuration. - optional BgpEthernetSegmentDfElection df_election = 1; + BgpEthernetSegmentDfElection df_election = 1; // This contains the list of EVIs. repeated BgpV6EvpnEvis evis = 2; @@ -4127,7 +4127,7 @@ message BgpV6EthernetSegment { optional uint32 esi_label = 5; // Description missing in models - optional BgpRouteAdvanced advanced = 6; + BgpRouteAdvanced advanced = 6; // Optional community settings. repeated BgpCommunity communities = 7; @@ -4162,7 +4162,7 @@ message BgpV6EthernetSegment { repeated BgpExtCommunity ext_communities = 8; // Optional AS PATH settings. - optional BgpAsPath as_path = 9; + BgpAsPath as_path = 9; } // This contains a list of different flavors of EVPN. @@ -4182,7 +4182,7 @@ message BgpV6EvpnEvis { optional Choice.Enum choice = 1; // EVPN VXLAN instance to be configured per Ethernet Segment. - optional BgpV6EviVxlan evi_vxlan = 2; + BgpV6EviVxlan evi_vxlan = 2; } // Configuration for BGP EVPN EVI. Advertises following routes - @@ -4219,7 +4219,7 @@ message BgpV6EviVxlan { // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying // an EVI. Example - for the as_2octet 60005:100. - optional BgpRouteDistinguisher route_distinguisher = 5; + BgpRouteDistinguisher route_distinguisher = 5; // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with // this EVI. @@ -4235,7 +4235,7 @@ message BgpV6EviVxlan { repeated BgpRouteTarget l3_route_target_import = 9; // Description missing in models - optional BgpRouteAdvanced advanced = 10; + BgpRouteAdvanced advanced = 10; // Optional community settings. repeated BgpCommunity communities = 11; @@ -4270,7 +4270,7 @@ message BgpV6EviVxlan { repeated BgpExtCommunity ext_communities = 12; // Optional AS PATH settings. - optional BgpAsPath as_path = 13; + BgpAsPath as_path = 13; } // Configuration for Broadcast Domains per EVI. @@ -4318,21 +4318,21 @@ message VxlanV4Tunnel { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - string source_interface = 1; + optional string source_interface = 1; // Description missing in models - optional VxlanV4TunnelDestinationIPMode destination_ip_mode = 2; + VxlanV4TunnelDestinationIPMode destination_ip_mode = 2; // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // required = true - uint32 vni = 3; + optional uint32 vni = 3; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 4; + optional string name = 4; } // Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point @@ -4351,21 +4351,21 @@ message VxlanV6Tunnel { // - /components/schemas/Device.Ipv6Loopback/properties/name // // required = true - string source_interface = 1; + optional string source_interface = 1; // Description missing in models - optional VxlanV6TunnelDestinationIPMode destination_ip_mode = 2; + VxlanV6TunnelDestinationIPMode destination_ip_mode = 2; // VXLAN Network Identifier (VNI) to distinguish network instances on the wire // required = true - uint32 vni = 3; + optional uint32 vni = 3; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 4; + optional string name = 4; } // Communication mode between the VTEPs, either unicast or multicast. @@ -4383,10 +4383,10 @@ message VxlanV4TunnelDestinationIPMode { optional Choice.Enum choice = 1; // Description missing in models - optional VxlanV4TunnelDestinationIPModeUnicast unicast = 2; + VxlanV4TunnelDestinationIPModeUnicast unicast = 2; // Description missing in models - optional VxlanV4TunnelDestinationIPModeMulticast multicast = 3; + VxlanV4TunnelDestinationIPModeMulticast multicast = 3; } // Communication mode between the VTEPs, either unicast or multicast. @@ -4404,10 +4404,10 @@ message VxlanV6TunnelDestinationIPMode { optional Choice.Enum choice = 1; // Description missing in models - optional VxlanV6TunnelDestinationIPModeUnicast unicast = 2; + VxlanV6TunnelDestinationIPModeUnicast unicast = 2; // Description missing in models - optional VxlanV6TunnelDestinationIPModeMulticast multicast = 3; + VxlanV6TunnelDestinationIPModeMulticast multicast = 3; } // Description missing in models @@ -4513,11 +4513,11 @@ message RsvpIpv4Interface { // - /components/schemas/Device.Ipv4/properties/name // // required = true - string ipv4_name = 1; + optional string ipv4_name = 1; // IPv4 address of the RSVP neighbor on this interface. // required = true - string neighbor_ip = 2; + optional string neighbor_ip = 2; // The user-defined label space start value. The LSPs for which this router acts as // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end @@ -4584,10 +4584,10 @@ message RsvpLspIpv4Interface { // - /components/schemas/Device.Ipv4Loopback/properties/name // // required = true - string ipv4_name = 1; + optional string ipv4_name = 1; // Contains properties of Tail(Egress) LSPs. - optional RsvpLspIpv4InterfaceP2PEgressIpv4Lsp p2p_egress_ipv4_lsps = 2; + RsvpLspIpv4InterfaceP2PEgressIpv4Lsp p2p_egress_ipv4_lsps = 2; // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. repeated RsvpLspIpv4InterfaceP2PIngressIpv4Lsp p2p_ingress_ipv4_lsps = 3; @@ -4599,7 +4599,7 @@ message RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 1; + optional string name = 1; // The time in seconds between successive transmissions of RESV Refreshes. The actual // refresh interval is jittered by upto 50%. There is no specification specified maximum @@ -4648,11 +4648,11 @@ message RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 1; + optional string name = 1; // IPv4 address of the remote endpoint of the LSP. // required = true - string remote_address = 2; + optional string remote_address = 2; // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. // default = 1 @@ -4695,23 +4695,23 @@ message RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object // in the Path Message sent for the LSP. - optional RsvpSessionAttribute session_attribute = 9; + RsvpSessionAttribute session_attribute = 9; // This contains the values of the fields to be included in the TSPEC object in the // Path Message sent for the LSP. - optional RsvpTspec tspec = 10; + RsvpTspec tspec = 10; // This contains the values of the fields to be included in the FAST_REROUTE object // in the Path Message sent for the LSP. // This is an optional object . If this attribute is not included , the FAST_REROUTE // object will not be included. - optional RsvpFastReroute fast_reroute = 11; + RsvpFastReroute fast_reroute = 11; // This contains the values of the fields to be included in the ERO object in the Path // Message sent for the LSP. // This is an optional object . If this attribute is not included , the ERO object will // not be included. - optional RsvpEro ero = 12; + RsvpEro ero = 12; } // Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined @@ -4782,7 +4782,7 @@ message RsvpSessionAttribute { // using which further constraints can be // set on the path calculated for the LSP based on the Admin Group settings in the IGP // (e.g ISIS or OSPF interface). - optional RsvpResourceAffinities resource_affinities = 10; + RsvpResourceAffinities resource_affinities = 10; } // This is an optional object. If included, the extended SESSION_ATTRIBUTE object is @@ -5021,21 +5021,21 @@ message Flow { repeated FlowHeader egress_packet = 9; // The size of the packets. - optional FlowSize size = 3; + FlowSize size = 3; // The transmit rate of the packets. - optional FlowRate rate = 4; + FlowRate rate = 4; // The transmit duration of the packets. - optional FlowDuration duration = 5; + FlowDuration duration = 5; // Flow metrics. - optional FlowMetrics metrics = 6; + FlowMetrics metrics = 6; // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 7; + optional string name = 7; } // A container for different types of transmit and receive @@ -5054,10 +5054,10 @@ message FlowTxRx { optional Choice.Enum choice = 1; // Description missing in models - optional FlowPort port = 2; + FlowPort port = 2; // Description missing in models - optional FlowRouter device = 3; + FlowRouter device = 3; } // A container for a transmit port and 0..n intended receive ports. @@ -5081,7 +5081,7 @@ message FlowPort { // - /components/schemas/Lag/properties/name // // required = true - string tx_name = 1; + optional string tx_name = 1; // Deprecated: This property is deprecated in favor of property rx_names // @@ -5257,61 +5257,61 @@ message FlowHeader { optional Choice.Enum choice = 1; // Description missing in models - optional FlowCustom custom = 2; + FlowCustom custom = 2; // Description missing in models - optional FlowEthernet ethernet = 3; + FlowEthernet ethernet = 3; // Description missing in models - optional FlowVlan vlan = 4; + FlowVlan vlan = 4; // Description missing in models - optional FlowVxlan vxlan = 5; + FlowVxlan vxlan = 5; // Description missing in models - optional FlowIpv4 ipv4 = 6; + FlowIpv4 ipv4 = 6; // Description missing in models - optional FlowIpv6 ipv6 = 7; + FlowIpv6 ipv6 = 7; // Description missing in models - optional FlowPfcPause pfcpause = 8; + FlowPfcPause pfcpause = 8; // Description missing in models - optional FlowEthernetPause ethernetpause = 9; + FlowEthernetPause ethernetpause = 9; // Description missing in models - optional FlowTcp tcp = 10; + FlowTcp tcp = 10; // Description missing in models - optional FlowUdp udp = 11; + FlowUdp udp = 11; // Description missing in models - optional FlowGre gre = 12; + FlowGre gre = 12; // Description missing in models - optional FlowGtpv1 gtpv1 = 13; + FlowGtpv1 gtpv1 = 13; // Description missing in models - optional FlowGtpv2 gtpv2 = 14; + FlowGtpv2 gtpv2 = 14; // Description missing in models - optional FlowArp arp = 15; + FlowArp arp = 15; // Description missing in models - optional FlowIcmp icmp = 16; + FlowIcmp icmp = 16; // Description missing in models - optional FlowIcmpv6 icmpv6 = 17; + FlowIcmpv6 icmpv6 = 17; // Description missing in models - optional FlowPpp ppp = 18; + FlowPpp ppp = 18; // Description missing in models - optional FlowIgmpv1 igmpv1 = 19; + FlowIgmpv1 igmpv1 = 19; // Description missing in models - optional FlowMpls mpls = 20; + FlowMpls mpls = 20; } // Custom packet header @@ -5321,7 +5321,7 @@ message FlowCustom { // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be // discarded. This packet header can be used in multiple places in the packet. // required = true - string bytes = 1; + optional string bytes = 1; // One or more metric tags can be used to enable tracking portion of or all bits // in a corresponding header field for metrics per each applicable value. @@ -5337,7 +5337,7 @@ message FlowCustomMetricTag { // Name used to identify the metrics associated with the values applicable // for configured offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -5353,94 +5353,94 @@ message FlowCustomMetricTag { message FlowEthernet { // Description missing in models - optional PatternFlowEthernetDst dst = 1; + PatternFlowEthernetDst dst = 1; // Description missing in models - optional PatternFlowEthernetSrc src = 2; + PatternFlowEthernetSrc src = 2; // Description missing in models - optional PatternFlowEthernetEtherType ether_type = 3; + PatternFlowEthernetEtherType ether_type = 3; // Description missing in models - optional PatternFlowEthernetPfcQueue pfc_queue = 4; + PatternFlowEthernetPfcQueue pfc_queue = 4; } // VLAN packet header message FlowVlan { // Description missing in models - optional PatternFlowVlanPriority priority = 1; + PatternFlowVlanPriority priority = 1; // Description missing in models - optional PatternFlowVlanCfi cfi = 2; + PatternFlowVlanCfi cfi = 2; // Description missing in models - optional PatternFlowVlanId id = 3; + PatternFlowVlanId id = 3; // Description missing in models - optional PatternFlowVlanTpid tpid = 4; + PatternFlowVlanTpid tpid = 4; } // VXLAN packet header message FlowVxlan { // Description missing in models - optional PatternFlowVxlanFlags flags = 1; + PatternFlowVxlanFlags flags = 1; // Description missing in models - optional PatternFlowVxlanReserved0 reserved0 = 2; + PatternFlowVxlanReserved0 reserved0 = 2; // Description missing in models - optional PatternFlowVxlanVni vni = 3; + PatternFlowVxlanVni vni = 3; // Description missing in models - optional PatternFlowVxlanReserved1 reserved1 = 4; + PatternFlowVxlanReserved1 reserved1 = 4; } // IPv4 packet header message FlowIpv4 { // Description missing in models - optional PatternFlowIpv4Version version = 1; + PatternFlowIpv4Version version = 1; // Description missing in models - optional PatternFlowIpv4HeaderLength header_length = 2; + PatternFlowIpv4HeaderLength header_length = 2; // Description missing in models - optional FlowIpv4Priority priority = 3; + FlowIpv4Priority priority = 3; // Description missing in models - optional PatternFlowIpv4TotalLength total_length = 4; + PatternFlowIpv4TotalLength total_length = 4; // Description missing in models - optional PatternFlowIpv4Identification identification = 5; + PatternFlowIpv4Identification identification = 5; // Description missing in models - optional PatternFlowIpv4Reserved reserved = 6; + PatternFlowIpv4Reserved reserved = 6; // Description missing in models - optional PatternFlowIpv4DontFragment dont_fragment = 7; + PatternFlowIpv4DontFragment dont_fragment = 7; // Description missing in models - optional PatternFlowIpv4MoreFragments more_fragments = 8; + PatternFlowIpv4MoreFragments more_fragments = 8; // Description missing in models - optional PatternFlowIpv4FragmentOffset fragment_offset = 9; + PatternFlowIpv4FragmentOffset fragment_offset = 9; // Description missing in models - optional PatternFlowIpv4TimeToLive time_to_live = 10; + PatternFlowIpv4TimeToLive time_to_live = 10; // Description missing in models - optional PatternFlowIpv4Protocol protocol = 11; + PatternFlowIpv4Protocol protocol = 11; // Description missing in models - optional PatternFlowIpv4HeaderChecksum header_checksum = 12; + PatternFlowIpv4HeaderChecksum header_checksum = 12; // Description missing in models - optional PatternFlowIpv4Src src = 13; + PatternFlowIpv4Src src = 13; // Description missing in models - optional PatternFlowIpv4Dst dst = 14; + PatternFlowIpv4Dst dst = 14; } // A container for ipv4 raw, tos, dscp ip priorities. @@ -5459,262 +5459,262 @@ message FlowIpv4Priority { optional Choice.Enum choice = 1; // Description missing in models - optional PatternFlowIpv4PriorityRaw raw = 2; + PatternFlowIpv4PriorityRaw raw = 2; // Description missing in models - optional FlowIpv4Tos tos = 3; + FlowIpv4Tos tos = 3; // Description missing in models - optional FlowIpv4Dscp dscp = 4; + FlowIpv4Dscp dscp = 4; } // Differentiated services code point (DSCP) packet field. message FlowIpv4Dscp { // Description missing in models - optional PatternFlowIpv4DscpPhb phb = 1; + PatternFlowIpv4DscpPhb phb = 1; // Description missing in models - optional PatternFlowIpv4DscpEcn ecn = 2; + PatternFlowIpv4DscpEcn ecn = 2; } // Type of service (TOS) packet field. message FlowIpv4Tos { // Description missing in models - optional PatternFlowIpv4TosPrecedence precedence = 1; + PatternFlowIpv4TosPrecedence precedence = 1; // Description missing in models - optional PatternFlowIpv4TosDelay delay = 2; + PatternFlowIpv4TosDelay delay = 2; // Description missing in models - optional PatternFlowIpv4TosThroughput throughput = 3; + PatternFlowIpv4TosThroughput throughput = 3; // Description missing in models - optional PatternFlowIpv4TosReliability reliability = 4; + PatternFlowIpv4TosReliability reliability = 4; // Description missing in models - optional PatternFlowIpv4TosMonetary monetary = 5; + PatternFlowIpv4TosMonetary monetary = 5; // Description missing in models - optional PatternFlowIpv4TosUnused unused = 6; + PatternFlowIpv4TosUnused unused = 6; } // IPv6 packet header message FlowIpv6 { // Description missing in models - optional PatternFlowIpv6Version version = 1; + PatternFlowIpv6Version version = 1; // Description missing in models - optional PatternFlowIpv6TrafficClass traffic_class = 2; + PatternFlowIpv6TrafficClass traffic_class = 2; // Description missing in models - optional PatternFlowIpv6FlowLabel flow_label = 3; + PatternFlowIpv6FlowLabel flow_label = 3; // Description missing in models - optional PatternFlowIpv6PayloadLength payload_length = 4; + PatternFlowIpv6PayloadLength payload_length = 4; // Description missing in models - optional PatternFlowIpv6NextHeader next_header = 5; + PatternFlowIpv6NextHeader next_header = 5; // Description missing in models - optional PatternFlowIpv6HopLimit hop_limit = 6; + PatternFlowIpv6HopLimit hop_limit = 6; // Description missing in models - optional PatternFlowIpv6Src src = 7; + PatternFlowIpv6Src src = 7; // Description missing in models - optional PatternFlowIpv6Dst dst = 8; + PatternFlowIpv6Dst dst = 8; } // IEEE 802.1Qbb PFC Pause packet header. message FlowPfcPause { // Description missing in models - optional PatternFlowPfcPauseDst dst = 1; + PatternFlowPfcPauseDst dst = 1; // Description missing in models - optional PatternFlowPfcPauseSrc src = 2; + PatternFlowPfcPauseSrc src = 2; // Description missing in models - optional PatternFlowPfcPauseEtherType ether_type = 3; + PatternFlowPfcPauseEtherType ether_type = 3; // Description missing in models - optional PatternFlowPfcPauseControlOpCode control_op_code = 4; + PatternFlowPfcPauseControlOpCode control_op_code = 4; // Description missing in models - optional PatternFlowPfcPauseClassEnableVector class_enable_vector = 5; + PatternFlowPfcPauseClassEnableVector class_enable_vector = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass0 pause_class_0 = 6; + PatternFlowPfcPausePauseClass0 pause_class_0 = 6; // Description missing in models - optional PatternFlowPfcPausePauseClass1 pause_class_1 = 7; + PatternFlowPfcPausePauseClass1 pause_class_1 = 7; // Description missing in models - optional PatternFlowPfcPausePauseClass2 pause_class_2 = 8; + PatternFlowPfcPausePauseClass2 pause_class_2 = 8; // Description missing in models - optional PatternFlowPfcPausePauseClass3 pause_class_3 = 9; + PatternFlowPfcPausePauseClass3 pause_class_3 = 9; // Description missing in models - optional PatternFlowPfcPausePauseClass4 pause_class_4 = 10; + PatternFlowPfcPausePauseClass4 pause_class_4 = 10; // Description missing in models - optional PatternFlowPfcPausePauseClass5 pause_class_5 = 11; + PatternFlowPfcPausePauseClass5 pause_class_5 = 11; // Description missing in models - optional PatternFlowPfcPausePauseClass6 pause_class_6 = 12; + PatternFlowPfcPausePauseClass6 pause_class_6 = 12; // Description missing in models - optional PatternFlowPfcPausePauseClass7 pause_class_7 = 13; + PatternFlowPfcPausePauseClass7 pause_class_7 = 13; } // IEEE 802.3x global ethernet pause packet header message FlowEthernetPause { // Description missing in models - optional PatternFlowEthernetPauseDst dst = 1; + PatternFlowEthernetPauseDst dst = 1; // Description missing in models - optional PatternFlowEthernetPauseSrc src = 2; + PatternFlowEthernetPauseSrc src = 2; // Description missing in models - optional PatternFlowEthernetPauseEtherType ether_type = 3; + PatternFlowEthernetPauseEtherType ether_type = 3; // Description missing in models - optional PatternFlowEthernetPauseControlOpCode control_op_code = 4; + PatternFlowEthernetPauseControlOpCode control_op_code = 4; // Description missing in models - optional PatternFlowEthernetPauseTime time = 5; + PatternFlowEthernetPauseTime time = 5; } // TCP packet header message FlowTcp { // Description missing in models - optional PatternFlowTcpSrcPort src_port = 1; + PatternFlowTcpSrcPort src_port = 1; // Description missing in models - optional PatternFlowTcpDstPort dst_port = 2; + PatternFlowTcpDstPort dst_port = 2; // Description missing in models - optional PatternFlowTcpSeqNum seq_num = 3; + PatternFlowTcpSeqNum seq_num = 3; // Description missing in models - optional PatternFlowTcpAckNum ack_num = 4; + PatternFlowTcpAckNum ack_num = 4; // Description missing in models - optional PatternFlowTcpDataOffset data_offset = 5; + PatternFlowTcpDataOffset data_offset = 5; // Description missing in models - optional PatternFlowTcpEcnNs ecn_ns = 6; + PatternFlowTcpEcnNs ecn_ns = 6; // Description missing in models - optional PatternFlowTcpEcnCwr ecn_cwr = 7; + PatternFlowTcpEcnCwr ecn_cwr = 7; // Description missing in models - optional PatternFlowTcpEcnEcho ecn_echo = 8; + PatternFlowTcpEcnEcho ecn_echo = 8; // Description missing in models - optional PatternFlowTcpCtlUrg ctl_urg = 9; + PatternFlowTcpCtlUrg ctl_urg = 9; // Description missing in models - optional PatternFlowTcpCtlAck ctl_ack = 10; + PatternFlowTcpCtlAck ctl_ack = 10; // Description missing in models - optional PatternFlowTcpCtlPsh ctl_psh = 11; + PatternFlowTcpCtlPsh ctl_psh = 11; // Description missing in models - optional PatternFlowTcpCtlRst ctl_rst = 12; + PatternFlowTcpCtlRst ctl_rst = 12; // Description missing in models - optional PatternFlowTcpCtlSyn ctl_syn = 13; + PatternFlowTcpCtlSyn ctl_syn = 13; // Description missing in models - optional PatternFlowTcpCtlFin ctl_fin = 14; + PatternFlowTcpCtlFin ctl_fin = 14; // Description missing in models - optional PatternFlowTcpWindow window = 15; + PatternFlowTcpWindow window = 15; } // UDP packet header message FlowUdp { // Description missing in models - optional PatternFlowUdpSrcPort src_port = 1; + PatternFlowUdpSrcPort src_port = 1; // Description missing in models - optional PatternFlowUdpDstPort dst_port = 2; + PatternFlowUdpDstPort dst_port = 2; // Description missing in models - optional PatternFlowUdpLength length = 3; + PatternFlowUdpLength length = 3; // Description missing in models - optional PatternFlowUdpChecksum checksum = 4; + PatternFlowUdpChecksum checksum = 4; } // Standard GRE packet header (RFC2784) message FlowGre { // Description missing in models - optional PatternFlowGreChecksumPresent checksum_present = 1; + PatternFlowGreChecksumPresent checksum_present = 1; // Description missing in models - optional PatternFlowGreReserved0 reserved0 = 2; + PatternFlowGreReserved0 reserved0 = 2; // Description missing in models - optional PatternFlowGreVersion version = 3; + PatternFlowGreVersion version = 3; // Description missing in models - optional PatternFlowGreProtocol protocol = 4; + PatternFlowGreProtocol protocol = 4; // Description missing in models - optional PatternFlowGreChecksum checksum = 5; + PatternFlowGreChecksum checksum = 5; // Description missing in models - optional PatternFlowGreReserved1 reserved1 = 6; + PatternFlowGreReserved1 reserved1 = 6; } // GTPv1 packet header message FlowGtpv1 { // Description missing in models - optional PatternFlowGtpv1Version version = 1; + PatternFlowGtpv1Version version = 1; // Description missing in models - optional PatternFlowGtpv1ProtocolType protocol_type = 2; + PatternFlowGtpv1ProtocolType protocol_type = 2; // Description missing in models - optional PatternFlowGtpv1Reserved reserved = 3; + PatternFlowGtpv1Reserved reserved = 3; // Description missing in models - optional PatternFlowGtpv1EFlag e_flag = 4; + PatternFlowGtpv1EFlag e_flag = 4; // Description missing in models - optional PatternFlowGtpv1SFlag s_flag = 5; + PatternFlowGtpv1SFlag s_flag = 5; // Description missing in models - optional PatternFlowGtpv1PnFlag pn_flag = 6; + PatternFlowGtpv1PnFlag pn_flag = 6; // Description missing in models - optional PatternFlowGtpv1MessageType message_type = 7; + PatternFlowGtpv1MessageType message_type = 7; // Description missing in models - optional PatternFlowGtpv1MessageLength message_length = 8; + PatternFlowGtpv1MessageLength message_length = 8; // Description missing in models - optional PatternFlowGtpv1Teid teid = 9; + PatternFlowGtpv1Teid teid = 9; // Description missing in models - optional PatternFlowGtpv1SquenceNumber squence_number = 10; + PatternFlowGtpv1SquenceNumber squence_number = 10; // Description missing in models - optional PatternFlowGtpv1NPduNumber n_pdu_number = 11; + PatternFlowGtpv1NPduNumber n_pdu_number = 11; // Description missing in models - optional PatternFlowGtpv1NextExtensionHeaderType next_extension_header_type = 12; + PatternFlowGtpv1NextExtensionHeaderType next_extension_header_type = 12; // A list of optional extension headers. repeated FlowGtpExtension extension_headers = 13; @@ -5724,75 +5724,75 @@ message FlowGtpv1 { message FlowGtpExtension { // Description missing in models - optional PatternFlowGtpExtensionExtensionLength extension_length = 1; + PatternFlowGtpExtensionExtensionLength extension_length = 1; // Description missing in models - optional PatternFlowGtpExtensionContents contents = 2; + PatternFlowGtpExtensionContents contents = 2; // Description missing in models - optional PatternFlowGtpExtensionNextExtensionHeader next_extension_header = 3; + PatternFlowGtpExtensionNextExtensionHeader next_extension_header = 3; } // GTPv2 packet header message FlowGtpv2 { // Description missing in models - optional PatternFlowGtpv2Version version = 1; + PatternFlowGtpv2Version version = 1; // Description missing in models - optional PatternFlowGtpv2PiggybackingFlag piggybacking_flag = 2; + PatternFlowGtpv2PiggybackingFlag piggybacking_flag = 2; // Description missing in models - optional PatternFlowGtpv2TeidFlag teid_flag = 3; + PatternFlowGtpv2TeidFlag teid_flag = 3; // Description missing in models - optional PatternFlowGtpv2Spare1 spare1 = 4; + PatternFlowGtpv2Spare1 spare1 = 4; // Description missing in models - optional PatternFlowGtpv2MessageType message_type = 5; + PatternFlowGtpv2MessageType message_type = 5; // Description missing in models - optional PatternFlowGtpv2MessageLength message_length = 6; + PatternFlowGtpv2MessageLength message_length = 6; // Description missing in models - optional PatternFlowGtpv2Teid teid = 7; + PatternFlowGtpv2Teid teid = 7; // Description missing in models - optional PatternFlowGtpv2SequenceNumber sequence_number = 8; + PatternFlowGtpv2SequenceNumber sequence_number = 8; // Description missing in models - optional PatternFlowGtpv2Spare2 spare2 = 9; + PatternFlowGtpv2Spare2 spare2 = 9; } // ARP packet header message FlowArp { // Description missing in models - optional PatternFlowArpHardwareType hardware_type = 1; + PatternFlowArpHardwareType hardware_type = 1; // Description missing in models - optional PatternFlowArpProtocolType protocol_type = 2; + PatternFlowArpProtocolType protocol_type = 2; // Description missing in models - optional PatternFlowArpHardwareLength hardware_length = 3; + PatternFlowArpHardwareLength hardware_length = 3; // Description missing in models - optional PatternFlowArpProtocolLength protocol_length = 4; + PatternFlowArpProtocolLength protocol_length = 4; // Description missing in models - optional PatternFlowArpOperation operation = 5; + PatternFlowArpOperation operation = 5; // Description missing in models - optional PatternFlowArpSenderHardwareAddr sender_hardware_addr = 6; + PatternFlowArpSenderHardwareAddr sender_hardware_addr = 6; // Description missing in models - optional PatternFlowArpSenderProtocolAddr sender_protocol_addr = 7; + PatternFlowArpSenderProtocolAddr sender_protocol_addr = 7; // Description missing in models - optional PatternFlowArpTargetHardwareAddr target_hardware_addr = 8; + PatternFlowArpTargetHardwareAddr target_hardware_addr = 8; // Description missing in models - optional PatternFlowArpTargetProtocolAddr target_protocol_addr = 9; + PatternFlowArpTargetProtocolAddr target_protocol_addr = 9; } // ICMP packet header @@ -5809,26 +5809,26 @@ message FlowIcmp { optional Choice.Enum choice = 1; // Description missing in models - optional FlowIcmpEcho echo = 2; + FlowIcmpEcho echo = 2; } // Packet Header for ICMP echo request message FlowIcmpEcho { // Description missing in models - optional PatternFlowIcmpEchoType type = 1; + PatternFlowIcmpEchoType type = 1; // Description missing in models - optional PatternFlowIcmpEchoCode code = 2; + PatternFlowIcmpEchoCode code = 2; // Description missing in models - optional PatternFlowIcmpEchoChecksum checksum = 3; + PatternFlowIcmpEchoChecksum checksum = 3; // Description missing in models - optional PatternFlowIcmpEchoIdentifier identifier = 4; + PatternFlowIcmpEchoIdentifier identifier = 4; // Description missing in models - optional PatternFlowIcmpEchoSequenceNumber sequence_number = 5; + PatternFlowIcmpEchoSequenceNumber sequence_number = 5; } // ICMPv6 packet header @@ -5845,58 +5845,58 @@ message FlowIcmpv6 { optional Choice.Enum choice = 1; // Description missing in models - optional FlowIcmpv6Echo echo = 2; + FlowIcmpv6Echo echo = 2; } // Packet Header for ICMPv6 Echo message FlowIcmpv6Echo { // Description missing in models - optional PatternFlowIcmpv6EchoType type = 1; + PatternFlowIcmpv6EchoType type = 1; // Description missing in models - optional PatternFlowIcmpv6EchoCode code = 2; + PatternFlowIcmpv6EchoCode code = 2; // Description missing in models - optional PatternFlowIcmpv6EchoIdentifier identifier = 3; + PatternFlowIcmpv6EchoIdentifier identifier = 3; // Description missing in models - optional PatternFlowIcmpv6EchoSequenceNumber sequence_number = 4; + PatternFlowIcmpv6EchoSequenceNumber sequence_number = 4; // Description missing in models - optional PatternFlowIcmpv6EchoChecksum checksum = 5; + PatternFlowIcmpv6EchoChecksum checksum = 5; } // PPP packet header message FlowPpp { // Description missing in models - optional PatternFlowPppAddress address = 1; + PatternFlowPppAddress address = 1; // Description missing in models - optional PatternFlowPppControl control = 2; + PatternFlowPppControl control = 2; // Description missing in models - optional PatternFlowPppProtocolType protocol_type = 3; + PatternFlowPppProtocolType protocol_type = 3; } // IGMPv1 packet header message FlowIgmpv1 { // Description missing in models - optional PatternFlowIgmpv1Version version = 1; + PatternFlowIgmpv1Version version = 1; // Description missing in models - optional PatternFlowIgmpv1Type type = 2; + PatternFlowIgmpv1Type type = 2; // Description missing in models - optional PatternFlowIgmpv1Unused unused = 3; + PatternFlowIgmpv1Unused unused = 3; // Description missing in models - optional PatternFlowIgmpv1Checksum checksum = 4; + PatternFlowIgmpv1Checksum checksum = 4; // Description missing in models - optional PatternFlowIgmpv1GroupAddress group_address = 5; + PatternFlowIgmpv1GroupAddress group_address = 5; } // MPLS packet header; When configuring multiple such headers, the count shall not exceed @@ -5904,16 +5904,16 @@ message FlowIgmpv1 { message FlowMpls { // Description missing in models - optional PatternFlowMplsLabel label = 1; + PatternFlowMplsLabel label = 1; // Description missing in models - optional PatternFlowMplsTrafficClass traffic_class = 2; + PatternFlowMplsTrafficClass traffic_class = 2; // Description missing in models - optional PatternFlowMplsBottomOfStack bottom_of_stack = 3; + PatternFlowMplsBottomOfStack bottom_of_stack = 3; // Description missing in models - optional PatternFlowMplsTimeToLive time_to_live = 4; + PatternFlowMplsTimeToLive time_to_live = 4; } // The frame size which overrides the total length of the packet @@ -5937,13 +5937,13 @@ message FlowSize { optional uint32 fixed = 2; // Description missing in models - optional FlowSizeIncrement increment = 3; + FlowSizeIncrement increment = 3; // Description missing in models - optional FlowSizeRandom random = 4; + FlowSizeRandom random = 4; // Description missing in models - optional FlowSizeWeightPairs weight_pairs = 5; + FlowSizeWeightPairs weight_pairs = 5; } // Frame size that increments from a starting size to @@ -6095,16 +6095,16 @@ message FlowDuration { optional Choice.Enum choice = 1; // Description missing in models - optional FlowFixedPackets fixed_packets = 2; + FlowFixedPackets fixed_packets = 2; // Description missing in models - optional FlowFixedSeconds fixed_seconds = 3; + FlowFixedSeconds fixed_seconds = 3; // Description missing in models - optional FlowBurst burst = 4; + FlowBurst burst = 4; // Description missing in models - optional FlowContinuous continuous = 5; + FlowContinuous continuous = 5; } // Transmit will be continuous and will not stop automatically. @@ -6115,7 +6115,7 @@ message FlowContinuous { optional uint32 gap = 1; // Description missing in models - optional FlowDelay delay = 2; + FlowDelay delay = 2; } // The optional container to specify the delay before starting @@ -6162,7 +6162,7 @@ message FlowFixedPackets { optional uint32 gap = 2; // Description missing in models - optional FlowDelay delay = 3; + FlowDelay delay = 3; } // Transmit for a fixed number of seconds after which the flow will stop. @@ -6177,7 +6177,7 @@ message FlowFixedSeconds { optional uint32 gap = 2; // Description missing in models - optional FlowDelay delay = 3; + FlowDelay delay = 3; } // Transmits continuous or fixed burst of packets. @@ -6200,7 +6200,7 @@ message FlowBurst { optional uint32 gap = 3; // Description missing in models - optional FlowDurationInterBurstGap inter_burst_gap = 4; + FlowDurationInterBurstGap inter_burst_gap = 4; } // The optional container for specifying a gap between bursts. @@ -6248,17 +6248,17 @@ message FlowMetrics { optional bool loss = 2; // Rx Tx ratio. - optional FlowRxTxRatio rx_tx_ratio = 6; + FlowRxTxRatio rx_tx_ratio = 6; // Enables additional flow metric first and last timestamps. // default = False optional bool timestamps = 3; // Latency metrics. - optional FlowLatencyMetrics latency = 4; + FlowLatencyMetrics latency = 4; // Predefined metric tags - optional FlowPredefinedTags predefined_metric_tags = 5; + FlowPredefinedTags predefined_metric_tags = 5; } // The optional container for per flow latency metric configuration. @@ -6329,7 +6329,7 @@ message FlowRxTxRatio { optional Choice.Enum choice = 1; // Description missing in models - optional FlowRxTxRatioRxCount rx_count = 2; + FlowRxTxRatioRxCount rx_count = 2; // Should be a positive, non-zero value. The default value of 1, is when the Rx packet // count across @@ -6362,13 +6362,13 @@ message Event { optional bool enable = 1; // Description missing in models - optional EventLink link = 2; + EventLink link = 2; // Description missing in models - optional EventRxRateThreshold rx_rate_threshold = 3; + EventRxRateThreshold rx_rate_threshold = 3; // Description missing in models - optional EventRouteAdvertiseWithdraw route_advertise_withdraw = 4; + EventRouteAdvertiseWithdraw route_advertise_withdraw = 4; } // The optional container for rx rate threshold event configuration. @@ -6443,7 +6443,7 @@ message EventRequest { message EventSubscription { // Description missing in models - optional EventRequest events = 1; + EventRequest events = 1; // Indicates where a client wants to be notified of the events set in // the events property. @@ -6462,18 +6462,18 @@ message Lldp { // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint // identifier associated with the transmitting LLDP agent. If mac address is specified // it should be in colon seperated mac address format. - optional LldpChassisId chassis_id = 2; + LldpChassisId chassis_id = 2; // The Port ID is a mandatory TLV which identifies the port component of the endpoint // identifier associated with the transmitting LLDP agent. If the specified port is // an IEEE 802.3 Repeater port, then this TLV is optional. - optional LldpPortId port_id = 3; + LldpPortId port_id = 3; // The system name field shall contain an alpha-numeric string that indicates the system's // administratively assigned name. The system name should be the system's fully qualified // domain name. If implementations support IETF RFC 3418, the sysName object should // be used for this field. - optional LldpSystemName system_name = 4; + LldpSystemName system_name = 4; // Specifies the amount of time in seconds a receiving device should maintain LLDP information // sent by the device before discarding it. @@ -6487,7 +6487,7 @@ message Lldp { // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - string name = 7; + optional string name = 7; } // LLDP connection to a test port. In future if more connection options arise LLDP @@ -6534,7 +6534,7 @@ message LldpChassisId { optional Choice.Enum choice = 1; // Description missing in models - optional LldpChassisMacSubType mac_address_subtype = 2; + LldpChassisMacSubType mac_address_subtype = 2; // Name of an interface of the chassis that uniquely identifies the chassis. optional string interface_name_subtype = 3; @@ -6565,7 +6565,7 @@ message LldpPortId { optional string mac_address_subtype = 2; // Description missing in models - optional LldpPortInterfaceNameSubType interface_name_subtype = 3; + LldpPortInterfaceNameSubType interface_name_subtype = 3; // The Locally assigned name configured in the Port ID TLV. optional string local_subtype = 4; @@ -6646,7 +6646,7 @@ message Error { // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // required = true - int32 code = 1; + optional int32 code = 1; message Kind { enum Enum { @@ -6686,7 +6686,7 @@ message ConfigUpdate { optional Choice.Enum choice = 1; // Description missing in models - optional FlowsUpdate flows = 2; + FlowsUpdate flows = 2; } // A container of flows with associated properties to be updated without affecting the @@ -6720,16 +6720,16 @@ message ControlState { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional StatePort port = 2; + StatePort port = 2; // Description missing in models - optional StateProtocol protocol = 3; + StateProtocol protocol = 3; // Description missing in models - optional StateTraffic traffic = 4; + StateTraffic traffic = 4; } // States associated with configured ports. @@ -6744,13 +6744,13 @@ message StatePort { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional StatePortLink link = 2; + StatePortLink link = 2; // Description missing in models - optional StatePortCapture capture = 3; + StatePortCapture capture = 3; } // States associated with configured flows @@ -6764,10 +6764,10 @@ message StateTraffic { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional StateTrafficFlowTransmit flow_transmit = 2; + StateTrafficFlowTransmit flow_transmit = 2; } // States associated with protocols on configured resources. @@ -6783,16 +6783,16 @@ message StateProtocol { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional StateProtocolAll all = 2; + StateProtocolAll all = 2; // Description missing in models - optional StateProtocolRoute route = 3; + StateProtocolRoute route = 3; // Description missing in models - optional StateProtocolLacp lacp = 4; + StateProtocolLacp lacp = 4; } // Sets the link of configured ports. @@ -6818,7 +6818,7 @@ message StatePortLink { } // The link state. // required = true - State.Enum state = 2; + optional State.Enum state = 2; } // Sets the capture state of configured ports @@ -6847,7 +6847,7 @@ message StatePortCapture { } // The capture state. // required = true - State.Enum state = 2; + optional State.Enum state = 2; } // Provides state control of flow transmission. @@ -6889,7 +6889,7 @@ message StateTrafficFlowTransmit { // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) // MUST NOT have their metric counters cleared. // required = true - State.Enum state = 2; + optional State.Enum state = 2; } // Sets all configured protocols to `start` or `stop` state. @@ -6907,7 +6907,7 @@ message StateProtocolAll { } // Protocol states // required = true - State.Enum state = 1; + optional State.Enum state = 1; } // Sets the state of configured routes @@ -6940,7 +6940,7 @@ message StateProtocolRoute { } // Route states // required = true - State.Enum state = 2; + optional State.Enum state = 2; } // Sets state of configured LACP @@ -6954,10 +6954,10 @@ message StateProtocolLacp { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional StateProtocolLacpAdmin admin = 2; + StateProtocolLacpAdmin admin = 2; } // Sets admin state of LACP configured on LAG members @@ -6986,7 +6986,7 @@ message StateProtocolLacpAdmin { // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member // ports. // required = true - State.Enum state = 2; + optional State.Enum state = 2; } // Request for triggering action against configured resources. @@ -7000,10 +7000,10 @@ message ControlAction { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionProtocol protocol = 2; + ActionProtocol protocol = 2; } // Response for action triggered against configured resources along with warnings. @@ -7013,7 +7013,7 @@ message ControlActionResponse { repeated string warnings = 1; // Description missing in models - optional ActionResponse response = 2; + ActionResponse response = 2; } // Response for action triggered against configured resources. @@ -7027,10 +7027,10 @@ message ActionResponse { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionResponseProtocol protocol = 2; + ActionResponseProtocol protocol = 2; } // Actions associated with protocols on configured resources. @@ -7046,16 +7046,16 @@ message ActionProtocol { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionProtocolIpv4 ipv4 = 2; + ActionProtocolIpv4 ipv4 = 2; // Description missing in models - optional ActionProtocolIpv6 ipv6 = 3; + ActionProtocolIpv6 ipv6 = 3; // Description missing in models - optional ActionProtocolBgp bgp = 4; + ActionProtocolBgp bgp = 4; } // Response for actions associated with protocols on configured resources. @@ -7070,13 +7070,13 @@ message ActionResponseProtocol { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionResponseProtocolIpv4 ipv4 = 2; + ActionResponseProtocolIpv4 ipv4 = 2; // Description missing in models - optional ActionResponseProtocolIpv6 ipv6 = 3; + ActionResponseProtocolIpv6 ipv6 = 3; } // Actions associated with IPv4 on configured resources. @@ -7090,10 +7090,10 @@ message ActionProtocolIpv4 { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionProtocolIpv4Ping ping = 2; + ActionProtocolIpv4Ping ping = 2; } // Response for actions associated with IPv4 on configured resources. @@ -7107,10 +7107,10 @@ message ActionResponseProtocolIpv4 { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionResponseProtocolIpv4Ping ping = 2; + ActionResponseProtocolIpv4Ping ping = 2; } // Request for initiating ping between multiple source and destination pairs. @@ -7164,11 +7164,11 @@ message ActionResponseProtocolIpv4PingResponse { // - /components/schemas/Device.Ipv4/properties/name // // required = true - string src_name = 1; + optional string src_name = 1; // Destination IPv4 address used for ping. // required = true - string dst_ip = 2; + optional string dst_ip = 2; message Result { enum Enum { @@ -7179,7 +7179,7 @@ message ActionResponseProtocolIpv4PingResponse { } // Result of the ping request. // required = true - Result.Enum result = 3; + optional Result.Enum result = 3; } // Actions associated with IPv6 on configured resources. @@ -7193,10 +7193,10 @@ message ActionProtocolIpv6 { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionProtocolIpv6Ping ping = 2; + ActionProtocolIpv6Ping ping = 2; } // Response for actions associated with IPv6 on configured resources. @@ -7210,10 +7210,10 @@ message ActionResponseProtocolIpv6 { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionResponseProtocolIpv6Ping ping = 2; + ActionResponseProtocolIpv6Ping ping = 2; } // Request for initiating ping between multiple source and destination pairs. @@ -7267,11 +7267,11 @@ message ActionResponseProtocolIpv6PingResponse { // - /components/schemas/Device.Ipv6/properties/name // // required = true - string src_name = 1; + optional string src_name = 1; // Destination IPv6 address used for ping. // required = true - string dst_ip = 2; + optional string dst_ip = 2; message Result { enum Enum { @@ -7282,7 +7282,7 @@ message ActionResponseProtocolIpv6PingResponse { } // Result of the ping request. // required = true - Result.Enum result = 3; + optional Result.Enum result = 3; } // Actions associated with BGP on configured resources. @@ -7297,13 +7297,13 @@ message ActionProtocolBgp { } // Description missing in models // required = true - Choice.Enum choice = 1; + optional Choice.Enum choice = 1; // Description missing in models - optional ActionProtocolBgpNotification notification = 2; + ActionProtocolBgpNotification notification = 2; // Description missing in models - optional ActionProtocolBgpInitiateGracefulRestart initiate_graceful_restart = 3; + ActionProtocolBgpInitiateGracefulRestart initiate_graceful_restart = 3; } // A NOTIFICATION message is sent when an error is detected with the BGP session, such @@ -7350,25 +7350,25 @@ message ActionProtocolBgpNotification { optional Choice.Enum choice = 2; // Description missing in models - optional DeviceBgpCeaseError cease = 3; + DeviceBgpCeaseError cease = 3; // Description missing in models - optional DeviceBgpMessageHeaderError message_header_error = 4; + DeviceBgpMessageHeaderError message_header_error = 4; // Description missing in models - optional DeviceBgpOpenMessageError open_message_error = 5; + DeviceBgpOpenMessageError open_message_error = 5; // Description missing in models - optional DeviceBgpUpdateMessageError update_message_error = 6; + DeviceBgpUpdateMessageError update_message_error = 6; // Description missing in models - optional DeviceBgpHoldTimerExpired hold_timer_expired = 7; + DeviceBgpHoldTimerExpired hold_timer_expired = 7; // Description missing in models - optional DeviceBgpFiniteStateMachineError finite_state_machine_error = 8; + DeviceBgpFiniteStateMachineError finite_state_machine_error = 8; // Description missing in models - optional DeviceBgpCustomError custom = 9; + DeviceBgpCustomError custom = 9; } // Initiates BGP Graceful Restart process for the selected BGP peers. If no name is @@ -7415,31 +7415,31 @@ message MetricsRequest { optional Choice.Enum choice = 1; // Description missing in models - optional PortMetricsRequest port = 2; + PortMetricsRequest port = 2; // Description missing in models - optional FlowMetricsRequest flow = 3; + FlowMetricsRequest flow = 3; // Description missing in models - optional Bgpv4MetricsRequest bgpv4 = 4; + Bgpv4MetricsRequest bgpv4 = 4; // Description missing in models - optional Bgpv6MetricsRequest bgpv6 = 5; + Bgpv6MetricsRequest bgpv6 = 5; // Description missing in models - optional IsisMetricsRequest isis = 6; + IsisMetricsRequest isis = 6; // Description missing in models - optional LagMetricsRequest lag = 7; + LagMetricsRequest lag = 7; // Description missing in models - optional LacpMetricsRequest lacp = 8; + LacpMetricsRequest lacp = 8; // Description missing in models - optional LldpMetricsRequest lldp = 9; + LldpMetricsRequest lldp = 9; // Description missing in models - optional RsvpMetricsRequest rsvp = 10; + RsvpMetricsRequest rsvp = 10; } // Response containing chosen traffic generator metrics. @@ -7634,7 +7634,7 @@ message FlowMetricsRequest { repeated MetricNames.Enum metric_names = 3; // Description missing in models - optional FlowTaggedMetricsFilter tagged_metrics = 4; + FlowTaggedMetricsFilter tagged_metrics = 4; } // Filter for tagged metrics @@ -7728,10 +7728,10 @@ message FlowMetric { optional float loss = 12; // Description missing in models - optional MetricTimestamp timestamps = 13; + MetricTimestamp timestamps = 13; // Description missing in models - optional MetricLatency latency = 14; + MetricLatency latency = 14; // List of metrics corresponding to a set of values applicable // for configured metric tags in ingress or egress packet header fields of corresponding @@ -7770,10 +7770,10 @@ message FlowTaggedMetric { optional float loss = 8; // Description missing in models - optional MetricTimestamp timestamps = 9; + MetricTimestamp timestamps = 9; // Description missing in models - optional MetricLatency latency = 10; + MetricLatency latency = 10; } // Description missing in models @@ -7783,7 +7783,7 @@ message FlowMetricTag { optional string name = 1; // Description missing in models - optional FlowMetricTagValue value = 2; + FlowMetricTagValue value = 2; } // A container for metric tag value @@ -8698,22 +8698,22 @@ message StatesRequest { optional Choice.Enum choice = 1; // Description missing in models - optional Neighborsv4StatesRequest ipv4_neighbors = 2; + Neighborsv4StatesRequest ipv4_neighbors = 2; // Description missing in models - optional Neighborsv6StatesRequest ipv6_neighbors = 3; + Neighborsv6StatesRequest ipv6_neighbors = 3; // Description missing in models - optional BgpPrefixStateRequest bgp_prefixes = 4; + BgpPrefixStateRequest bgp_prefixes = 4; // Description missing in models - optional IsisLspsStateRequest isis_lsps = 5; + IsisLspsStateRequest isis_lsps = 5; // Description missing in models - optional LldpNeighborsStateRequest lldp_neighbors = 6; + LldpNeighborsStateRequest lldp_neighbors = 6; // Description missing in models - optional RsvpLspsStateRequest rsvp_lsps = 7; + RsvpLspsStateRequest rsvp_lsps = 7; } // Response containing chosen traffic generator states @@ -8776,11 +8776,11 @@ message Neighborsv4State { // The name of the Ethernet interface associated with the Neighbor state (ARP cache // entry). // required = true - string ethernet_name = 1; + optional string ethernet_name = 1; // The IPv4 address of the neighbor. // required = true - string ipv4_address = 2; + optional string ipv4_address = 2; // The link-layer address (MAC) of the neighbor. optional string link_layer_address = 3; @@ -8809,11 +8809,11 @@ message Neighborsv6State { // The name of the Ethernet interface associated with the Neighbor state (NDISC cache // entry). // required = true - string ethernet_name = 1; + optional string ethernet_name = 1; // The IPv6 address of the neighbor. // required = true - string ipv6_address = 2; + optional string ipv6_address = 2; // The link-layer address (MAC) of the neighbor. optional string link_layer_address = 3; @@ -8957,7 +8957,7 @@ message BgpPrefixIpv4UnicastState { repeated ResultBgpCommunity communities = 7; // Description missing in models - optional ResultBgpAsPath as_path = 8; + ResultBgpAsPath as_path = 8; // The local preference is a well-known attribute and the value is used for route selection. // The route with the highest local preference value is preferred. @@ -9001,7 +9001,7 @@ message BgpPrefixIpv6UnicastState { repeated ResultBgpCommunity communities = 7; // Description missing in models - optional ResultBgpAsPath as_path = 8; + ResultBgpAsPath as_path = 8; // The local preference is a well-known attribute and the value is used for route selection. // The route with the highest local preference value is preferred. @@ -9110,7 +9110,7 @@ message IsisLspState { // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. // Then the sequence number is incremented by 1. // required = true - string lsp_id = 1; + optional string lsp_id = 1; message PduType { enum Enum { @@ -9132,7 +9132,7 @@ message IsisLspState { optional uint32 pdu_length = 5; // LSP Type-Block flags. - optional IsisLspFlags flags = 6; + IsisLspFlags flags = 6; // IS Type - bits 1 and 2 indicate the type of Intermediate System. // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. @@ -9141,7 +9141,7 @@ message IsisLspState { optional uint32 is_type = 7; // It refers to Link State PDU State TLVs container. - optional IsisLspTlvs tlvs = 8; + IsisLspTlvs tlvs = 8; } // This contains the list of TLVs present in one LSP. @@ -9320,7 +9320,7 @@ message IsisLspExtendedV4Prefix { optional RedistributionType.Enum redistribution_type = 4; // Description missing in models - optional IsisLspPrefixAttributes prefix_attributes = 5; + IsisLspPrefixAttributes prefix_attributes = 5; } // It defines list of IPv6 extended reachability information in one IPv6 Reachability @@ -9372,7 +9372,7 @@ message IsisLspV6Prefix { optional OriginType.Enum origin_type = 5; // Description missing in models - optional IsisLspPrefixAttributes prefix_attributes = 6; + IsisLspPrefixAttributes prefix_attributes = 6; } // This contains the properties of ISIS Prefix attributes for the extended IPv4 and @@ -9588,7 +9588,7 @@ message RsvpIPv4LspState { optional string destination_address = 2; // It refers to the RSVP LSP properties. - optional RsvpLspState lsp = 3; + RsvpLspState lsp = 3; // It refers to RSVP RRO objects container. repeated RsvpLspIpv4Rro rros = 4; @@ -9704,7 +9704,7 @@ message CaptureRequest { // - /components/schemas/Port/properties/name // // required = true - string port_name = 1; + optional string port_name = 1; } // mac counter pattern @@ -9731,7 +9731,7 @@ message PatternFlowEthernetDstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -9775,10 +9775,10 @@ message PatternFlowEthernetDst { optional string auto = 4; // Description missing in models - optional PatternFlowEthernetDstCounter increment = 6; + PatternFlowEthernetDstCounter increment = 6; // Description missing in models - optional PatternFlowEthernetDstCounter decrement = 7; + PatternFlowEthernetDstCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -9810,7 +9810,7 @@ message PatternFlowEthernetSrcMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -9847,10 +9847,10 @@ message PatternFlowEthernetSrc { repeated string values = 3; // Description missing in models - optional PatternFlowEthernetSrcCounter increment = 5; + PatternFlowEthernetSrcCounter increment = 5; // Description missing in models - optional PatternFlowEthernetSrcCounter decrement = 6; + PatternFlowEthernetSrcCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -9882,7 +9882,7 @@ message PatternFlowEthernetEtherTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -9926,10 +9926,10 @@ message PatternFlowEthernetEtherType { optional uint32 auto = 4; // Description missing in models - optional PatternFlowEthernetEtherTypeCounter increment = 6; + PatternFlowEthernetEtherTypeCounter increment = 6; // Description missing in models - optional PatternFlowEthernetEtherTypeCounter decrement = 7; + PatternFlowEthernetEtherTypeCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -9961,7 +9961,7 @@ message PatternFlowEthernetPfcQueueMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -9998,10 +9998,10 @@ message PatternFlowEthernetPfcQueue { repeated uint32 values = 3; // Description missing in models - optional PatternFlowEthernetPfcQueueCounter increment = 5; + PatternFlowEthernetPfcQueueCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPfcQueueCounter decrement = 6; + PatternFlowEthernetPfcQueueCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10033,7 +10033,7 @@ message PatternFlowVlanPriorityMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10070,10 +10070,10 @@ message PatternFlowVlanPriority { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVlanPriorityCounter increment = 5; + PatternFlowVlanPriorityCounter increment = 5; // Description missing in models - optional PatternFlowVlanPriorityCounter decrement = 6; + PatternFlowVlanPriorityCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10105,7 +10105,7 @@ message PatternFlowVlanCfiMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10142,10 +10142,10 @@ message PatternFlowVlanCfi { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVlanCfiCounter increment = 5; + PatternFlowVlanCfiCounter increment = 5; // Description missing in models - optional PatternFlowVlanCfiCounter decrement = 6; + PatternFlowVlanCfiCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10177,7 +10177,7 @@ message PatternFlowVlanIdMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10214,10 +10214,10 @@ message PatternFlowVlanId { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVlanIdCounter increment = 5; + PatternFlowVlanIdCounter increment = 5; // Description missing in models - optional PatternFlowVlanIdCounter decrement = 6; + PatternFlowVlanIdCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10249,7 +10249,7 @@ message PatternFlowVlanTpidMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10286,10 +10286,10 @@ message PatternFlowVlanTpid { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVlanTpidCounter increment = 5; + PatternFlowVlanTpidCounter increment = 5; // Description missing in models - optional PatternFlowVlanTpidCounter decrement = 6; + PatternFlowVlanTpidCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10321,7 +10321,7 @@ message PatternFlowVxlanFlagsMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10360,10 +10360,10 @@ message PatternFlowVxlanFlags { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVxlanFlagsCounter increment = 5; + PatternFlowVxlanFlagsCounter increment = 5; // Description missing in models - optional PatternFlowVxlanFlagsCounter decrement = 6; + PatternFlowVxlanFlagsCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10395,7 +10395,7 @@ message PatternFlowVxlanReserved0MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10432,10 +10432,10 @@ message PatternFlowVxlanReserved0 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVxlanReserved0Counter increment = 5; + PatternFlowVxlanReserved0Counter increment = 5; // Description missing in models - optional PatternFlowVxlanReserved0Counter decrement = 6; + PatternFlowVxlanReserved0Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10467,7 +10467,7 @@ message PatternFlowVxlanVniMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10511,10 +10511,10 @@ message PatternFlowVxlanVni { optional uint32 auto = 4; // Description missing in models - optional PatternFlowVxlanVniCounter increment = 6; + PatternFlowVxlanVniCounter increment = 6; // Description missing in models - optional PatternFlowVxlanVniCounter decrement = 7; + PatternFlowVxlanVniCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10546,7 +10546,7 @@ message PatternFlowVxlanReserved1MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10583,10 +10583,10 @@ message PatternFlowVxlanReserved1 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowVxlanReserved1Counter increment = 5; + PatternFlowVxlanReserved1Counter increment = 5; // Description missing in models - optional PatternFlowVxlanReserved1Counter decrement = 6; + PatternFlowVxlanReserved1Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10618,7 +10618,7 @@ message PatternFlowIpv4VersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10655,10 +10655,10 @@ message PatternFlowIpv4Version { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4VersionCounter increment = 5; + PatternFlowIpv4VersionCounter increment = 5; // Description missing in models - optional PatternFlowIpv4VersionCounter decrement = 6; + PatternFlowIpv4VersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10690,7 +10690,7 @@ message PatternFlowIpv4HeaderLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10734,10 +10734,10 @@ message PatternFlowIpv4HeaderLength { optional uint32 auto = 4; // Description missing in models - optional PatternFlowIpv4HeaderLengthCounter increment = 6; + PatternFlowIpv4HeaderLengthCounter increment = 6; // Description missing in models - optional PatternFlowIpv4HeaderLengthCounter decrement = 7; + PatternFlowIpv4HeaderLengthCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10769,7 +10769,7 @@ message PatternFlowIpv4TotalLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10813,10 +10813,10 @@ message PatternFlowIpv4TotalLength { optional uint32 auto = 4; // Description missing in models - optional PatternFlowIpv4TotalLengthCounter increment = 6; + PatternFlowIpv4TotalLengthCounter increment = 6; // Description missing in models - optional PatternFlowIpv4TotalLengthCounter decrement = 7; + PatternFlowIpv4TotalLengthCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10848,7 +10848,7 @@ message PatternFlowIpv4IdentificationMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10885,10 +10885,10 @@ message PatternFlowIpv4Identification { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4IdentificationCounter increment = 5; + PatternFlowIpv4IdentificationCounter increment = 5; // Description missing in models - optional PatternFlowIpv4IdentificationCounter decrement = 6; + PatternFlowIpv4IdentificationCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10920,7 +10920,7 @@ message PatternFlowIpv4ReservedMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -10957,10 +10957,10 @@ message PatternFlowIpv4Reserved { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4ReservedCounter increment = 5; + PatternFlowIpv4ReservedCounter increment = 5; // Description missing in models - optional PatternFlowIpv4ReservedCounter decrement = 6; + PatternFlowIpv4ReservedCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -10992,7 +10992,7 @@ message PatternFlowIpv4DontFragmentMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11030,10 +11030,10 @@ message PatternFlowIpv4DontFragment { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4DontFragmentCounter increment = 5; + PatternFlowIpv4DontFragmentCounter increment = 5; // Description missing in models - optional PatternFlowIpv4DontFragmentCounter decrement = 6; + PatternFlowIpv4DontFragmentCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11065,7 +11065,7 @@ message PatternFlowIpv4MoreFragmentsMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11102,10 +11102,10 @@ message PatternFlowIpv4MoreFragments { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4MoreFragmentsCounter increment = 5; + PatternFlowIpv4MoreFragmentsCounter increment = 5; // Description missing in models - optional PatternFlowIpv4MoreFragmentsCounter decrement = 6; + PatternFlowIpv4MoreFragmentsCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11137,7 +11137,7 @@ message PatternFlowIpv4FragmentOffsetMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11174,10 +11174,10 @@ message PatternFlowIpv4FragmentOffset { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4FragmentOffsetCounter increment = 5; + PatternFlowIpv4FragmentOffsetCounter increment = 5; // Description missing in models - optional PatternFlowIpv4FragmentOffsetCounter decrement = 6; + PatternFlowIpv4FragmentOffsetCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11209,7 +11209,7 @@ message PatternFlowIpv4TimeToLiveMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11246,10 +11246,10 @@ message PatternFlowIpv4TimeToLive { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TimeToLiveCounter increment = 5; + PatternFlowIpv4TimeToLiveCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TimeToLiveCounter decrement = 6; + PatternFlowIpv4TimeToLiveCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11281,7 +11281,7 @@ message PatternFlowIpv4ProtocolMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11325,10 +11325,10 @@ message PatternFlowIpv4Protocol { optional uint32 auto = 4; // Description missing in models - optional PatternFlowIpv4ProtocolCounter increment = 6; + PatternFlowIpv4ProtocolCounter increment = 6; // Description missing in models - optional PatternFlowIpv4ProtocolCounter decrement = 7; + PatternFlowIpv4ProtocolCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11389,7 +11389,7 @@ message PatternFlowIpv4SrcMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11426,10 +11426,10 @@ message PatternFlowIpv4Src { repeated string values = 3; // Description missing in models - optional PatternFlowIpv4SrcCounter increment = 5; + PatternFlowIpv4SrcCounter increment = 5; // Description missing in models - optional PatternFlowIpv4SrcCounter decrement = 6; + PatternFlowIpv4SrcCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11461,7 +11461,7 @@ message PatternFlowIpv4DstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11498,10 +11498,10 @@ message PatternFlowIpv4Dst { repeated string values = 3; // Description missing in models - optional PatternFlowIpv4DstCounter increment = 5; + PatternFlowIpv4DstCounter increment = 5; // Description missing in models - optional PatternFlowIpv4DstCounter decrement = 6; + PatternFlowIpv4DstCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11533,7 +11533,7 @@ message PatternFlowIpv4PriorityRawMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11570,10 +11570,10 @@ message PatternFlowIpv4PriorityRaw { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4PriorityRawCounter increment = 5; + PatternFlowIpv4PriorityRawCounter increment = 5; // Description missing in models - optional PatternFlowIpv4PriorityRawCounter decrement = 6; + PatternFlowIpv4PriorityRawCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11605,7 +11605,7 @@ message PatternFlowIpv4DscpPhbMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11642,10 +11642,10 @@ message PatternFlowIpv4DscpPhb { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4DscpPhbCounter increment = 5; + PatternFlowIpv4DscpPhbCounter increment = 5; // Description missing in models - optional PatternFlowIpv4DscpPhbCounter decrement = 6; + PatternFlowIpv4DscpPhbCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11677,7 +11677,7 @@ message PatternFlowIpv4DscpEcnMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11714,10 +11714,10 @@ message PatternFlowIpv4DscpEcn { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4DscpEcnCounter increment = 5; + PatternFlowIpv4DscpEcnCounter increment = 5; // Description missing in models - optional PatternFlowIpv4DscpEcnCounter decrement = 6; + PatternFlowIpv4DscpEcnCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11749,7 +11749,7 @@ message PatternFlowIpv4TosPrecedenceMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11786,10 +11786,10 @@ message PatternFlowIpv4TosPrecedence { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosPrecedenceCounter increment = 5; + PatternFlowIpv4TosPrecedenceCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosPrecedenceCounter decrement = 6; + PatternFlowIpv4TosPrecedenceCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11821,7 +11821,7 @@ message PatternFlowIpv4TosDelayMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11858,10 +11858,10 @@ message PatternFlowIpv4TosDelay { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosDelayCounter increment = 5; + PatternFlowIpv4TosDelayCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosDelayCounter decrement = 6; + PatternFlowIpv4TosDelayCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11893,7 +11893,7 @@ message PatternFlowIpv4TosThroughputMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -11930,10 +11930,10 @@ message PatternFlowIpv4TosThroughput { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosThroughputCounter increment = 5; + PatternFlowIpv4TosThroughputCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosThroughputCounter decrement = 6; + PatternFlowIpv4TosThroughputCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -11965,7 +11965,7 @@ message PatternFlowIpv4TosReliabilityMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12002,10 +12002,10 @@ message PatternFlowIpv4TosReliability { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosReliabilityCounter increment = 5; + PatternFlowIpv4TosReliabilityCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosReliabilityCounter decrement = 6; + PatternFlowIpv4TosReliabilityCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12037,7 +12037,7 @@ message PatternFlowIpv4TosMonetaryMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12074,10 +12074,10 @@ message PatternFlowIpv4TosMonetary { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosMonetaryCounter increment = 5; + PatternFlowIpv4TosMonetaryCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosMonetaryCounter decrement = 6; + PatternFlowIpv4TosMonetaryCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12109,7 +12109,7 @@ message PatternFlowIpv4TosUnusedMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12146,10 +12146,10 @@ message PatternFlowIpv4TosUnused { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv4TosUnusedCounter increment = 5; + PatternFlowIpv4TosUnusedCounter increment = 5; // Description missing in models - optional PatternFlowIpv4TosUnusedCounter decrement = 6; + PatternFlowIpv4TosUnusedCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12181,7 +12181,7 @@ message PatternFlowIpv6VersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12218,10 +12218,10 @@ message PatternFlowIpv6Version { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv6VersionCounter increment = 5; + PatternFlowIpv6VersionCounter increment = 5; // Description missing in models - optional PatternFlowIpv6VersionCounter decrement = 6; + PatternFlowIpv6VersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12253,7 +12253,7 @@ message PatternFlowIpv6TrafficClassMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12290,10 +12290,10 @@ message PatternFlowIpv6TrafficClass { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv6TrafficClassCounter increment = 5; + PatternFlowIpv6TrafficClassCounter increment = 5; // Description missing in models - optional PatternFlowIpv6TrafficClassCounter decrement = 6; + PatternFlowIpv6TrafficClassCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12325,7 +12325,7 @@ message PatternFlowIpv6FlowLabelMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12362,10 +12362,10 @@ message PatternFlowIpv6FlowLabel { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv6FlowLabelCounter increment = 5; + PatternFlowIpv6FlowLabelCounter increment = 5; // Description missing in models - optional PatternFlowIpv6FlowLabelCounter decrement = 6; + PatternFlowIpv6FlowLabelCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12397,7 +12397,7 @@ message PatternFlowIpv6PayloadLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12441,10 +12441,10 @@ message PatternFlowIpv6PayloadLength { optional uint32 auto = 4; // Description missing in models - optional PatternFlowIpv6PayloadLengthCounter increment = 6; + PatternFlowIpv6PayloadLengthCounter increment = 6; // Description missing in models - optional PatternFlowIpv6PayloadLengthCounter decrement = 7; + PatternFlowIpv6PayloadLengthCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12476,7 +12476,7 @@ message PatternFlowIpv6NextHeaderMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12520,10 +12520,10 @@ message PatternFlowIpv6NextHeader { optional uint32 auto = 4; // Description missing in models - optional PatternFlowIpv6NextHeaderCounter increment = 6; + PatternFlowIpv6NextHeaderCounter increment = 6; // Description missing in models - optional PatternFlowIpv6NextHeaderCounter decrement = 7; + PatternFlowIpv6NextHeaderCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12555,7 +12555,7 @@ message PatternFlowIpv6HopLimitMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12592,10 +12592,10 @@ message PatternFlowIpv6HopLimit { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIpv6HopLimitCounter increment = 5; + PatternFlowIpv6HopLimitCounter increment = 5; // Description missing in models - optional PatternFlowIpv6HopLimitCounter decrement = 6; + PatternFlowIpv6HopLimitCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12627,7 +12627,7 @@ message PatternFlowIpv6SrcMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12664,10 +12664,10 @@ message PatternFlowIpv6Src { repeated string values = 3; // Description missing in models - optional PatternFlowIpv6SrcCounter increment = 5; + PatternFlowIpv6SrcCounter increment = 5; // Description missing in models - optional PatternFlowIpv6SrcCounter decrement = 6; + PatternFlowIpv6SrcCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12699,7 +12699,7 @@ message PatternFlowIpv6DstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12736,10 +12736,10 @@ message PatternFlowIpv6Dst { repeated string values = 3; // Description missing in models - optional PatternFlowIpv6DstCounter increment = 5; + PatternFlowIpv6DstCounter increment = 5; // Description missing in models - optional PatternFlowIpv6DstCounter decrement = 6; + PatternFlowIpv6DstCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12771,7 +12771,7 @@ message PatternFlowPfcPauseDstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12808,10 +12808,10 @@ message PatternFlowPfcPauseDst { repeated string values = 3; // Description missing in models - optional PatternFlowPfcPauseDstCounter increment = 5; + PatternFlowPfcPauseDstCounter increment = 5; // Description missing in models - optional PatternFlowPfcPauseDstCounter decrement = 6; + PatternFlowPfcPauseDstCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12843,7 +12843,7 @@ message PatternFlowPfcPauseSrcMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12880,10 +12880,10 @@ message PatternFlowPfcPauseSrc { repeated string values = 3; // Description missing in models - optional PatternFlowPfcPauseSrcCounter increment = 5; + PatternFlowPfcPauseSrcCounter increment = 5; // Description missing in models - optional PatternFlowPfcPauseSrcCounter decrement = 6; + PatternFlowPfcPauseSrcCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12915,7 +12915,7 @@ message PatternFlowPfcPauseEtherTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -12952,10 +12952,10 @@ message PatternFlowPfcPauseEtherType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPauseEtherTypeCounter increment = 5; + PatternFlowPfcPauseEtherTypeCounter increment = 5; // Description missing in models - optional PatternFlowPfcPauseEtherTypeCounter decrement = 6; + PatternFlowPfcPauseEtherTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -12987,7 +12987,7 @@ message PatternFlowPfcPauseControlOpCodeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13024,10 +13024,10 @@ message PatternFlowPfcPauseControlOpCode { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPauseControlOpCodeCounter increment = 5; + PatternFlowPfcPauseControlOpCodeCounter increment = 5; // Description missing in models - optional PatternFlowPfcPauseControlOpCodeCounter decrement = 6; + PatternFlowPfcPauseControlOpCodeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13059,7 +13059,7 @@ message PatternFlowPfcPauseClassEnableVectorMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13096,10 +13096,10 @@ message PatternFlowPfcPauseClassEnableVector { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPauseClassEnableVectorCounter increment = 5; + PatternFlowPfcPauseClassEnableVectorCounter increment = 5; // Description missing in models - optional PatternFlowPfcPauseClassEnableVectorCounter decrement = 6; + PatternFlowPfcPauseClassEnableVectorCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13131,7 +13131,7 @@ message PatternFlowPfcPausePauseClass0MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13168,10 +13168,10 @@ message PatternFlowPfcPausePauseClass0 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass0Counter increment = 5; + PatternFlowPfcPausePauseClass0Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass0Counter decrement = 6; + PatternFlowPfcPausePauseClass0Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13203,7 +13203,7 @@ message PatternFlowPfcPausePauseClass1MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13240,10 +13240,10 @@ message PatternFlowPfcPausePauseClass1 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass1Counter increment = 5; + PatternFlowPfcPausePauseClass1Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass1Counter decrement = 6; + PatternFlowPfcPausePauseClass1Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13275,7 +13275,7 @@ message PatternFlowPfcPausePauseClass2MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13312,10 +13312,10 @@ message PatternFlowPfcPausePauseClass2 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass2Counter increment = 5; + PatternFlowPfcPausePauseClass2Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass2Counter decrement = 6; + PatternFlowPfcPausePauseClass2Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13347,7 +13347,7 @@ message PatternFlowPfcPausePauseClass3MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13384,10 +13384,10 @@ message PatternFlowPfcPausePauseClass3 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass3Counter increment = 5; + PatternFlowPfcPausePauseClass3Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass3Counter decrement = 6; + PatternFlowPfcPausePauseClass3Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13419,7 +13419,7 @@ message PatternFlowPfcPausePauseClass4MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13456,10 +13456,10 @@ message PatternFlowPfcPausePauseClass4 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass4Counter increment = 5; + PatternFlowPfcPausePauseClass4Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass4Counter decrement = 6; + PatternFlowPfcPausePauseClass4Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13491,7 +13491,7 @@ message PatternFlowPfcPausePauseClass5MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13528,10 +13528,10 @@ message PatternFlowPfcPausePauseClass5 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass5Counter increment = 5; + PatternFlowPfcPausePauseClass5Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass5Counter decrement = 6; + PatternFlowPfcPausePauseClass5Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13563,7 +13563,7 @@ message PatternFlowPfcPausePauseClass6MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13600,10 +13600,10 @@ message PatternFlowPfcPausePauseClass6 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass6Counter increment = 5; + PatternFlowPfcPausePauseClass6Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass6Counter decrement = 6; + PatternFlowPfcPausePauseClass6Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13635,7 +13635,7 @@ message PatternFlowPfcPausePauseClass7MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13672,10 +13672,10 @@ message PatternFlowPfcPausePauseClass7 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPfcPausePauseClass7Counter increment = 5; + PatternFlowPfcPausePauseClass7Counter increment = 5; // Description missing in models - optional PatternFlowPfcPausePauseClass7Counter decrement = 6; + PatternFlowPfcPausePauseClass7Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13707,7 +13707,7 @@ message PatternFlowEthernetPauseDstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13744,10 +13744,10 @@ message PatternFlowEthernetPauseDst { repeated string values = 3; // Description missing in models - optional PatternFlowEthernetPauseDstCounter increment = 5; + PatternFlowEthernetPauseDstCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPauseDstCounter decrement = 6; + PatternFlowEthernetPauseDstCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13779,7 +13779,7 @@ message PatternFlowEthernetPauseSrcMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13816,10 +13816,10 @@ message PatternFlowEthernetPauseSrc { repeated string values = 3; // Description missing in models - optional PatternFlowEthernetPauseSrcCounter increment = 5; + PatternFlowEthernetPauseSrcCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPauseSrcCounter decrement = 6; + PatternFlowEthernetPauseSrcCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13851,7 +13851,7 @@ message PatternFlowEthernetPauseEtherTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13888,10 +13888,10 @@ message PatternFlowEthernetPauseEtherType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowEthernetPauseEtherTypeCounter increment = 5; + PatternFlowEthernetPauseEtherTypeCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPauseEtherTypeCounter decrement = 6; + PatternFlowEthernetPauseEtherTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13923,7 +13923,7 @@ message PatternFlowEthernetPauseControlOpCodeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -13960,10 +13960,10 @@ message PatternFlowEthernetPauseControlOpCode { repeated uint32 values = 3; // Description missing in models - optional PatternFlowEthernetPauseControlOpCodeCounter increment = 5; + PatternFlowEthernetPauseControlOpCodeCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPauseControlOpCodeCounter decrement = 6; + PatternFlowEthernetPauseControlOpCodeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -13995,7 +13995,7 @@ message PatternFlowEthernetPauseTimeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14032,10 +14032,10 @@ message PatternFlowEthernetPauseTime { repeated uint32 values = 3; // Description missing in models - optional PatternFlowEthernetPauseTimeCounter increment = 5; + PatternFlowEthernetPauseTimeCounter increment = 5; // Description missing in models - optional PatternFlowEthernetPauseTimeCounter decrement = 6; + PatternFlowEthernetPauseTimeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14067,7 +14067,7 @@ message PatternFlowTcpSrcPortMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14104,10 +14104,10 @@ message PatternFlowTcpSrcPort { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpSrcPortCounter increment = 5; + PatternFlowTcpSrcPortCounter increment = 5; // Description missing in models - optional PatternFlowTcpSrcPortCounter decrement = 6; + PatternFlowTcpSrcPortCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14139,7 +14139,7 @@ message PatternFlowTcpDstPortMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14176,10 +14176,10 @@ message PatternFlowTcpDstPort { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpDstPortCounter increment = 5; + PatternFlowTcpDstPortCounter increment = 5; // Description missing in models - optional PatternFlowTcpDstPortCounter decrement = 6; + PatternFlowTcpDstPortCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14211,7 +14211,7 @@ message PatternFlowTcpSeqNumMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14248,10 +14248,10 @@ message PatternFlowTcpSeqNum { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpSeqNumCounter increment = 5; + PatternFlowTcpSeqNumCounter increment = 5; // Description missing in models - optional PatternFlowTcpSeqNumCounter decrement = 6; + PatternFlowTcpSeqNumCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14283,7 +14283,7 @@ message PatternFlowTcpAckNumMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14320,10 +14320,10 @@ message PatternFlowTcpAckNum { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpAckNumCounter increment = 5; + PatternFlowTcpAckNumCounter increment = 5; // Description missing in models - optional PatternFlowTcpAckNumCounter decrement = 6; + PatternFlowTcpAckNumCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14355,7 +14355,7 @@ message PatternFlowTcpDataOffsetMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14392,10 +14392,10 @@ message PatternFlowTcpDataOffset { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpDataOffsetCounter increment = 5; + PatternFlowTcpDataOffsetCounter increment = 5; // Description missing in models - optional PatternFlowTcpDataOffsetCounter decrement = 6; + PatternFlowTcpDataOffsetCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14427,7 +14427,7 @@ message PatternFlowTcpEcnNsMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14464,10 +14464,10 @@ message PatternFlowTcpEcnNs { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpEcnNsCounter increment = 5; + PatternFlowTcpEcnNsCounter increment = 5; // Description missing in models - optional PatternFlowTcpEcnNsCounter decrement = 6; + PatternFlowTcpEcnNsCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14499,7 +14499,7 @@ message PatternFlowTcpEcnCwrMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14536,10 +14536,10 @@ message PatternFlowTcpEcnCwr { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpEcnCwrCounter increment = 5; + PatternFlowTcpEcnCwrCounter increment = 5; // Description missing in models - optional PatternFlowTcpEcnCwrCounter decrement = 6; + PatternFlowTcpEcnCwrCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14571,7 +14571,7 @@ message PatternFlowTcpEcnEchoMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14609,10 +14609,10 @@ message PatternFlowTcpEcnEcho { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpEcnEchoCounter increment = 5; + PatternFlowTcpEcnEchoCounter increment = 5; // Description missing in models - optional PatternFlowTcpEcnEchoCounter decrement = 6; + PatternFlowTcpEcnEchoCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14644,7 +14644,7 @@ message PatternFlowTcpCtlUrgMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14681,10 +14681,10 @@ message PatternFlowTcpCtlUrg { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlUrgCounter increment = 5; + PatternFlowTcpCtlUrgCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlUrgCounter decrement = 6; + PatternFlowTcpCtlUrgCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14716,7 +14716,7 @@ message PatternFlowTcpCtlAckMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14753,10 +14753,10 @@ message PatternFlowTcpCtlAck { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlAckCounter increment = 5; + PatternFlowTcpCtlAckCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlAckCounter decrement = 6; + PatternFlowTcpCtlAckCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14788,7 +14788,7 @@ message PatternFlowTcpCtlPshMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14825,10 +14825,10 @@ message PatternFlowTcpCtlPsh { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlPshCounter increment = 5; + PatternFlowTcpCtlPshCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlPshCounter decrement = 6; + PatternFlowTcpCtlPshCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14860,7 +14860,7 @@ message PatternFlowTcpCtlRstMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14897,10 +14897,10 @@ message PatternFlowTcpCtlRst { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlRstCounter increment = 5; + PatternFlowTcpCtlRstCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlRstCounter decrement = 6; + PatternFlowTcpCtlRstCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -14932,7 +14932,7 @@ message PatternFlowTcpCtlSynMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -14969,10 +14969,10 @@ message PatternFlowTcpCtlSyn { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlSynCounter increment = 5; + PatternFlowTcpCtlSynCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlSynCounter decrement = 6; + PatternFlowTcpCtlSynCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15004,7 +15004,7 @@ message PatternFlowTcpCtlFinMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15041,10 +15041,10 @@ message PatternFlowTcpCtlFin { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpCtlFinCounter increment = 5; + PatternFlowTcpCtlFinCounter increment = 5; // Description missing in models - optional PatternFlowTcpCtlFinCounter decrement = 6; + PatternFlowTcpCtlFinCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15076,7 +15076,7 @@ message PatternFlowTcpWindowMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15113,10 +15113,10 @@ message PatternFlowTcpWindow { repeated uint32 values = 3; // Description missing in models - optional PatternFlowTcpWindowCounter increment = 5; + PatternFlowTcpWindowCounter increment = 5; // Description missing in models - optional PatternFlowTcpWindowCounter decrement = 6; + PatternFlowTcpWindowCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15148,7 +15148,7 @@ message PatternFlowUdpSrcPortMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15185,10 +15185,10 @@ message PatternFlowUdpSrcPort { repeated uint32 values = 3; // Description missing in models - optional PatternFlowUdpSrcPortCounter increment = 5; + PatternFlowUdpSrcPortCounter increment = 5; // Description missing in models - optional PatternFlowUdpSrcPortCounter decrement = 6; + PatternFlowUdpSrcPortCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15220,7 +15220,7 @@ message PatternFlowUdpDstPortMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15257,10 +15257,10 @@ message PatternFlowUdpDstPort { repeated uint32 values = 3; // Description missing in models - optional PatternFlowUdpDstPortCounter increment = 5; + PatternFlowUdpDstPortCounter increment = 5; // Description missing in models - optional PatternFlowUdpDstPortCounter decrement = 6; + PatternFlowUdpDstPortCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15292,7 +15292,7 @@ message PatternFlowUdpLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15329,10 +15329,10 @@ message PatternFlowUdpLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowUdpLengthCounter increment = 5; + PatternFlowUdpLengthCounter increment = 5; // Description missing in models - optional PatternFlowUdpLengthCounter decrement = 6; + PatternFlowUdpLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15393,7 +15393,7 @@ message PatternFlowGreChecksumPresentMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15430,10 +15430,10 @@ message PatternFlowGreChecksumPresent { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGreChecksumPresentCounter increment = 5; + PatternFlowGreChecksumPresentCounter increment = 5; // Description missing in models - optional PatternFlowGreChecksumPresentCounter decrement = 6; + PatternFlowGreChecksumPresentCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15465,7 +15465,7 @@ message PatternFlowGreReserved0MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15502,10 +15502,10 @@ message PatternFlowGreReserved0 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGreReserved0Counter increment = 5; + PatternFlowGreReserved0Counter increment = 5; // Description missing in models - optional PatternFlowGreReserved0Counter decrement = 6; + PatternFlowGreReserved0Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15537,7 +15537,7 @@ message PatternFlowGreVersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15574,10 +15574,10 @@ message PatternFlowGreVersion { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGreVersionCounter increment = 5; + PatternFlowGreVersionCounter increment = 5; // Description missing in models - optional PatternFlowGreVersionCounter decrement = 6; + PatternFlowGreVersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15609,7 +15609,7 @@ message PatternFlowGreProtocolMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15646,10 +15646,10 @@ message PatternFlowGreProtocol { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGreProtocolCounter increment = 5; + PatternFlowGreProtocolCounter increment = 5; // Description missing in models - optional PatternFlowGreProtocolCounter decrement = 6; + PatternFlowGreProtocolCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15711,7 +15711,7 @@ message PatternFlowGreReserved1MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15748,10 +15748,10 @@ message PatternFlowGreReserved1 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGreReserved1Counter increment = 5; + PatternFlowGreReserved1Counter increment = 5; // Description missing in models - optional PatternFlowGreReserved1Counter decrement = 6; + PatternFlowGreReserved1Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15783,7 +15783,7 @@ message PatternFlowGtpv1VersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15820,10 +15820,10 @@ message PatternFlowGtpv1Version { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1VersionCounter increment = 5; + PatternFlowGtpv1VersionCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1VersionCounter decrement = 6; + PatternFlowGtpv1VersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15855,7 +15855,7 @@ message PatternFlowGtpv1ProtocolTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15892,10 +15892,10 @@ message PatternFlowGtpv1ProtocolType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1ProtocolTypeCounter increment = 5; + PatternFlowGtpv1ProtocolTypeCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1ProtocolTypeCounter decrement = 6; + PatternFlowGtpv1ProtocolTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15927,7 +15927,7 @@ message PatternFlowGtpv1ReservedMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -15964,10 +15964,10 @@ message PatternFlowGtpv1Reserved { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1ReservedCounter increment = 5; + PatternFlowGtpv1ReservedCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1ReservedCounter decrement = 6; + PatternFlowGtpv1ReservedCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -15999,7 +15999,7 @@ message PatternFlowGtpv1EFlagMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16036,10 +16036,10 @@ message PatternFlowGtpv1EFlag { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1EFlagCounter increment = 5; + PatternFlowGtpv1EFlagCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1EFlagCounter decrement = 6; + PatternFlowGtpv1EFlagCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16071,7 +16071,7 @@ message PatternFlowGtpv1SFlagMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16108,10 +16108,10 @@ message PatternFlowGtpv1SFlag { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1SFlagCounter increment = 5; + PatternFlowGtpv1SFlagCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1SFlagCounter decrement = 6; + PatternFlowGtpv1SFlagCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16143,7 +16143,7 @@ message PatternFlowGtpv1PnFlagMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16180,10 +16180,10 @@ message PatternFlowGtpv1PnFlag { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1PnFlagCounter increment = 5; + PatternFlowGtpv1PnFlagCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1PnFlagCounter decrement = 6; + PatternFlowGtpv1PnFlagCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16215,7 +16215,7 @@ message PatternFlowGtpv1MessageTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16253,10 +16253,10 @@ message PatternFlowGtpv1MessageType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1MessageTypeCounter increment = 5; + PatternFlowGtpv1MessageTypeCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1MessageTypeCounter decrement = 6; + PatternFlowGtpv1MessageTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16288,7 +16288,7 @@ message PatternFlowGtpv1MessageLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16326,10 +16326,10 @@ message PatternFlowGtpv1MessageLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1MessageLengthCounter increment = 5; + PatternFlowGtpv1MessageLengthCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1MessageLengthCounter decrement = 6; + PatternFlowGtpv1MessageLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16361,7 +16361,7 @@ message PatternFlowGtpv1TeidMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16398,10 +16398,10 @@ message PatternFlowGtpv1Teid { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1TeidCounter increment = 5; + PatternFlowGtpv1TeidCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1TeidCounter decrement = 6; + PatternFlowGtpv1TeidCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16433,7 +16433,7 @@ message PatternFlowGtpv1SquenceNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16471,10 +16471,10 @@ message PatternFlowGtpv1SquenceNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1SquenceNumberCounter increment = 5; + PatternFlowGtpv1SquenceNumberCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1SquenceNumberCounter decrement = 6; + PatternFlowGtpv1SquenceNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16506,7 +16506,7 @@ message PatternFlowGtpv1NPduNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16544,10 +16544,10 @@ message PatternFlowGtpv1NPduNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1NPduNumberCounter increment = 5; + PatternFlowGtpv1NPduNumberCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1NPduNumberCounter decrement = 6; + PatternFlowGtpv1NPduNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16579,7 +16579,7 @@ message PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16617,10 +16617,10 @@ message PatternFlowGtpv1NextExtensionHeaderType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv1NextExtensionHeaderTypeCounter increment = 5; + PatternFlowGtpv1NextExtensionHeaderTypeCounter increment = 5; // Description missing in models - optional PatternFlowGtpv1NextExtensionHeaderTypeCounter decrement = 6; + PatternFlowGtpv1NextExtensionHeaderTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16652,7 +16652,7 @@ message PatternFlowGtpExtensionExtensionLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16691,10 +16691,10 @@ message PatternFlowGtpExtensionExtensionLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpExtensionExtensionLengthCounter increment = 5; + PatternFlowGtpExtensionExtensionLengthCounter increment = 5; // Description missing in models - optional PatternFlowGtpExtensionExtensionLengthCounter decrement = 6; + PatternFlowGtpExtensionExtensionLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16726,7 +16726,7 @@ message PatternFlowGtpExtensionContentsMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16763,10 +16763,10 @@ message PatternFlowGtpExtensionContents { repeated uint64 values = 3; // Description missing in models - optional PatternFlowGtpExtensionContentsCounter increment = 5; + PatternFlowGtpExtensionContentsCounter increment = 5; // Description missing in models - optional PatternFlowGtpExtensionContentsCounter decrement = 6; + PatternFlowGtpExtensionContentsCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16798,7 +16798,7 @@ message PatternFlowGtpExtensionNextExtensionHeaderMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16836,10 +16836,10 @@ message PatternFlowGtpExtensionNextExtensionHeader { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpExtensionNextExtensionHeaderCounter increment = 5; + PatternFlowGtpExtensionNextExtensionHeaderCounter increment = 5; // Description missing in models - optional PatternFlowGtpExtensionNextExtensionHeaderCounter decrement = 6; + PatternFlowGtpExtensionNextExtensionHeaderCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16871,7 +16871,7 @@ message PatternFlowGtpv2VersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16908,10 +16908,10 @@ message PatternFlowGtpv2Version { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2VersionCounter increment = 5; + PatternFlowGtpv2VersionCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2VersionCounter decrement = 6; + PatternFlowGtpv2VersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -16943,7 +16943,7 @@ message PatternFlowGtpv2PiggybackingFlagMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -16981,10 +16981,10 @@ message PatternFlowGtpv2PiggybackingFlag { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2PiggybackingFlagCounter increment = 5; + PatternFlowGtpv2PiggybackingFlagCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2PiggybackingFlagCounter decrement = 6; + PatternFlowGtpv2PiggybackingFlagCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17016,7 +17016,7 @@ message PatternFlowGtpv2TeidFlagMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17055,10 +17055,10 @@ message PatternFlowGtpv2TeidFlag { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2TeidFlagCounter increment = 5; + PatternFlowGtpv2TeidFlagCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2TeidFlagCounter decrement = 6; + PatternFlowGtpv2TeidFlagCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17090,7 +17090,7 @@ message PatternFlowGtpv2Spare1MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17127,10 +17127,10 @@ message PatternFlowGtpv2Spare1 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2Spare1Counter increment = 5; + PatternFlowGtpv2Spare1Counter increment = 5; // Description missing in models - optional PatternFlowGtpv2Spare1Counter decrement = 6; + PatternFlowGtpv2Spare1Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17162,7 +17162,7 @@ message PatternFlowGtpv2MessageTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17200,10 +17200,10 @@ message PatternFlowGtpv2MessageType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2MessageTypeCounter increment = 5; + PatternFlowGtpv2MessageTypeCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2MessageTypeCounter decrement = 6; + PatternFlowGtpv2MessageTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17235,7 +17235,7 @@ message PatternFlowGtpv2MessageLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17273,10 +17273,10 @@ message PatternFlowGtpv2MessageLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2MessageLengthCounter increment = 5; + PatternFlowGtpv2MessageLengthCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2MessageLengthCounter decrement = 6; + PatternFlowGtpv2MessageLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17308,7 +17308,7 @@ message PatternFlowGtpv2TeidMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17346,10 +17346,10 @@ message PatternFlowGtpv2Teid { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2TeidCounter increment = 5; + PatternFlowGtpv2TeidCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2TeidCounter decrement = 6; + PatternFlowGtpv2TeidCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17381,7 +17381,7 @@ message PatternFlowGtpv2SequenceNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17418,10 +17418,10 @@ message PatternFlowGtpv2SequenceNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2SequenceNumberCounter increment = 5; + PatternFlowGtpv2SequenceNumberCounter increment = 5; // Description missing in models - optional PatternFlowGtpv2SequenceNumberCounter decrement = 6; + PatternFlowGtpv2SequenceNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17453,7 +17453,7 @@ message PatternFlowGtpv2Spare2MetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17490,10 +17490,10 @@ message PatternFlowGtpv2Spare2 { repeated uint32 values = 3; // Description missing in models - optional PatternFlowGtpv2Spare2Counter increment = 5; + PatternFlowGtpv2Spare2Counter increment = 5; // Description missing in models - optional PatternFlowGtpv2Spare2Counter decrement = 6; + PatternFlowGtpv2Spare2Counter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17525,7 +17525,7 @@ message PatternFlowArpHardwareTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17562,10 +17562,10 @@ message PatternFlowArpHardwareType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowArpHardwareTypeCounter increment = 5; + PatternFlowArpHardwareTypeCounter increment = 5; // Description missing in models - optional PatternFlowArpHardwareTypeCounter decrement = 6; + PatternFlowArpHardwareTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17597,7 +17597,7 @@ message PatternFlowArpProtocolTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17634,10 +17634,10 @@ message PatternFlowArpProtocolType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowArpProtocolTypeCounter increment = 5; + PatternFlowArpProtocolTypeCounter increment = 5; // Description missing in models - optional PatternFlowArpProtocolTypeCounter decrement = 6; + PatternFlowArpProtocolTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17669,7 +17669,7 @@ message PatternFlowArpHardwareLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17706,10 +17706,10 @@ message PatternFlowArpHardwareLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowArpHardwareLengthCounter increment = 5; + PatternFlowArpHardwareLengthCounter increment = 5; // Description missing in models - optional PatternFlowArpHardwareLengthCounter decrement = 6; + PatternFlowArpHardwareLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17741,7 +17741,7 @@ message PatternFlowArpProtocolLengthMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17778,10 +17778,10 @@ message PatternFlowArpProtocolLength { repeated uint32 values = 3; // Description missing in models - optional PatternFlowArpProtocolLengthCounter increment = 5; + PatternFlowArpProtocolLengthCounter increment = 5; // Description missing in models - optional PatternFlowArpProtocolLengthCounter decrement = 6; + PatternFlowArpProtocolLengthCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17813,7 +17813,7 @@ message PatternFlowArpOperationMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17850,10 +17850,10 @@ message PatternFlowArpOperation { repeated uint32 values = 3; // Description missing in models - optional PatternFlowArpOperationCounter increment = 5; + PatternFlowArpOperationCounter increment = 5; // Description missing in models - optional PatternFlowArpOperationCounter decrement = 6; + PatternFlowArpOperationCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17885,7 +17885,7 @@ message PatternFlowArpSenderHardwareAddrMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17922,10 +17922,10 @@ message PatternFlowArpSenderHardwareAddr { repeated string values = 3; // Description missing in models - optional PatternFlowArpSenderHardwareAddrCounter increment = 5; + PatternFlowArpSenderHardwareAddrCounter increment = 5; // Description missing in models - optional PatternFlowArpSenderHardwareAddrCounter decrement = 6; + PatternFlowArpSenderHardwareAddrCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -17957,7 +17957,7 @@ message PatternFlowArpSenderProtocolAddrMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -17994,10 +17994,10 @@ message PatternFlowArpSenderProtocolAddr { repeated string values = 3; // Description missing in models - optional PatternFlowArpSenderProtocolAddrCounter increment = 5; + PatternFlowArpSenderProtocolAddrCounter increment = 5; // Description missing in models - optional PatternFlowArpSenderProtocolAddrCounter decrement = 6; + PatternFlowArpSenderProtocolAddrCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18029,7 +18029,7 @@ message PatternFlowArpTargetHardwareAddrMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18066,10 +18066,10 @@ message PatternFlowArpTargetHardwareAddr { repeated string values = 3; // Description missing in models - optional PatternFlowArpTargetHardwareAddrCounter increment = 5; + PatternFlowArpTargetHardwareAddrCounter increment = 5; // Description missing in models - optional PatternFlowArpTargetHardwareAddrCounter decrement = 6; + PatternFlowArpTargetHardwareAddrCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18101,7 +18101,7 @@ message PatternFlowArpTargetProtocolAddrMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18138,10 +18138,10 @@ message PatternFlowArpTargetProtocolAddr { repeated string values = 3; // Description missing in models - optional PatternFlowArpTargetProtocolAddrCounter increment = 5; + PatternFlowArpTargetProtocolAddrCounter increment = 5; // Description missing in models - optional PatternFlowArpTargetProtocolAddrCounter decrement = 6; + PatternFlowArpTargetProtocolAddrCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18173,7 +18173,7 @@ message PatternFlowIcmpEchoTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18210,10 +18210,10 @@ message PatternFlowIcmpEchoType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpEchoTypeCounter increment = 5; + PatternFlowIcmpEchoTypeCounter increment = 5; // Description missing in models - optional PatternFlowIcmpEchoTypeCounter decrement = 6; + PatternFlowIcmpEchoTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18245,7 +18245,7 @@ message PatternFlowIcmpEchoCodeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18282,10 +18282,10 @@ message PatternFlowIcmpEchoCode { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpEchoCodeCounter increment = 5; + PatternFlowIcmpEchoCodeCounter increment = 5; // Description missing in models - optional PatternFlowIcmpEchoCodeCounter decrement = 6; + PatternFlowIcmpEchoCodeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18346,7 +18346,7 @@ message PatternFlowIcmpEchoIdentifierMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18383,10 +18383,10 @@ message PatternFlowIcmpEchoIdentifier { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpEchoIdentifierCounter increment = 5; + PatternFlowIcmpEchoIdentifierCounter increment = 5; // Description missing in models - optional PatternFlowIcmpEchoIdentifierCounter decrement = 6; + PatternFlowIcmpEchoIdentifierCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18418,7 +18418,7 @@ message PatternFlowIcmpEchoSequenceNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18455,10 +18455,10 @@ message PatternFlowIcmpEchoSequenceNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpEchoSequenceNumberCounter increment = 5; + PatternFlowIcmpEchoSequenceNumberCounter increment = 5; // Description missing in models - optional PatternFlowIcmpEchoSequenceNumberCounter decrement = 6; + PatternFlowIcmpEchoSequenceNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18519,7 +18519,7 @@ message PatternFlowIcmpNextFieldsIdentifierMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18556,10 +18556,10 @@ message PatternFlowIcmpNextFieldsIdentifier { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpNextFieldsIdentifierCounter increment = 5; + PatternFlowIcmpNextFieldsIdentifierCounter increment = 5; // Description missing in models - optional PatternFlowIcmpNextFieldsIdentifierCounter decrement = 6; + PatternFlowIcmpNextFieldsIdentifierCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18591,7 +18591,7 @@ message PatternFlowIcmpNextFieldsSequenceNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18628,10 +18628,10 @@ message PatternFlowIcmpNextFieldsSequenceNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpNextFieldsSequenceNumberCounter increment = 5; + PatternFlowIcmpNextFieldsSequenceNumberCounter increment = 5; // Description missing in models - optional PatternFlowIcmpNextFieldsSequenceNumberCounter decrement = 6; + PatternFlowIcmpNextFieldsSequenceNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18663,7 +18663,7 @@ message PatternFlowIcmpv6EchoTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18700,10 +18700,10 @@ message PatternFlowIcmpv6EchoType { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpv6EchoTypeCounter increment = 5; + PatternFlowIcmpv6EchoTypeCounter increment = 5; // Description missing in models - optional PatternFlowIcmpv6EchoTypeCounter decrement = 6; + PatternFlowIcmpv6EchoTypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18735,7 +18735,7 @@ message PatternFlowIcmpv6EchoCodeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18772,10 +18772,10 @@ message PatternFlowIcmpv6EchoCode { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpv6EchoCodeCounter increment = 5; + PatternFlowIcmpv6EchoCodeCounter increment = 5; // Description missing in models - optional PatternFlowIcmpv6EchoCodeCounter decrement = 6; + PatternFlowIcmpv6EchoCodeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18807,7 +18807,7 @@ message PatternFlowIcmpv6EchoIdentifierMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18844,10 +18844,10 @@ message PatternFlowIcmpv6EchoIdentifier { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpv6EchoIdentifierCounter increment = 5; + PatternFlowIcmpv6EchoIdentifierCounter increment = 5; // Description missing in models - optional PatternFlowIcmpv6EchoIdentifierCounter decrement = 6; + PatternFlowIcmpv6EchoIdentifierCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -18879,7 +18879,7 @@ message PatternFlowIcmpv6EchoSequenceNumberMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -18916,10 +18916,10 @@ message PatternFlowIcmpv6EchoSequenceNumber { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIcmpv6EchoSequenceNumberCounter increment = 5; + PatternFlowIcmpv6EchoSequenceNumberCounter increment = 5; // Description missing in models - optional PatternFlowIcmpv6EchoSequenceNumberCounter decrement = 6; + PatternFlowIcmpv6EchoSequenceNumberCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19009,7 +19009,7 @@ message PatternFlowPppAddressMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19046,10 +19046,10 @@ message PatternFlowPppAddress { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPppAddressCounter increment = 5; + PatternFlowPppAddressCounter increment = 5; // Description missing in models - optional PatternFlowPppAddressCounter decrement = 6; + PatternFlowPppAddressCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19081,7 +19081,7 @@ message PatternFlowPppControlMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19118,10 +19118,10 @@ message PatternFlowPppControl { repeated uint32 values = 3; // Description missing in models - optional PatternFlowPppControlCounter increment = 5; + PatternFlowPppControlCounter increment = 5; // Description missing in models - optional PatternFlowPppControlCounter decrement = 6; + PatternFlowPppControlCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19153,7 +19153,7 @@ message PatternFlowPppProtocolTypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19197,10 +19197,10 @@ message PatternFlowPppProtocolType { optional uint32 auto = 4; // Description missing in models - optional PatternFlowPppProtocolTypeCounter increment = 6; + PatternFlowPppProtocolTypeCounter increment = 6; // Description missing in models - optional PatternFlowPppProtocolTypeCounter decrement = 7; + PatternFlowPppProtocolTypeCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19232,7 +19232,7 @@ message PatternFlowIgmpv1VersionMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19269,10 +19269,10 @@ message PatternFlowIgmpv1Version { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIgmpv1VersionCounter increment = 5; + PatternFlowIgmpv1VersionCounter increment = 5; // Description missing in models - optional PatternFlowIgmpv1VersionCounter decrement = 6; + PatternFlowIgmpv1VersionCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19304,7 +19304,7 @@ message PatternFlowIgmpv1TypeMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19341,10 +19341,10 @@ message PatternFlowIgmpv1Type { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIgmpv1TypeCounter increment = 5; + PatternFlowIgmpv1TypeCounter increment = 5; // Description missing in models - optional PatternFlowIgmpv1TypeCounter decrement = 6; + PatternFlowIgmpv1TypeCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19376,7 +19376,7 @@ message PatternFlowIgmpv1UnusedMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19413,10 +19413,10 @@ message PatternFlowIgmpv1Unused { repeated uint32 values = 3; // Description missing in models - optional PatternFlowIgmpv1UnusedCounter increment = 5; + PatternFlowIgmpv1UnusedCounter increment = 5; // Description missing in models - optional PatternFlowIgmpv1UnusedCounter decrement = 6; + PatternFlowIgmpv1UnusedCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19477,7 +19477,7 @@ message PatternFlowIgmpv1GroupAddressMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19514,10 +19514,10 @@ message PatternFlowIgmpv1GroupAddress { repeated string values = 3; // Description missing in models - optional PatternFlowIgmpv1GroupAddressCounter increment = 5; + PatternFlowIgmpv1GroupAddressCounter increment = 5; // Description missing in models - optional PatternFlowIgmpv1GroupAddressCounter decrement = 6; + PatternFlowIgmpv1GroupAddressCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19549,7 +19549,7 @@ message PatternFlowMplsLabelMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19593,10 +19593,10 @@ message PatternFlowMplsLabel { optional uint32 auto = 4; // Description missing in models - optional PatternFlowMplsLabelCounter increment = 6; + PatternFlowMplsLabelCounter increment = 6; // Description missing in models - optional PatternFlowMplsLabelCounter decrement = 7; + PatternFlowMplsLabelCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19628,7 +19628,7 @@ message PatternFlowMplsTrafficClassMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19665,10 +19665,10 @@ message PatternFlowMplsTrafficClass { repeated uint32 values = 3; // Description missing in models - optional PatternFlowMplsTrafficClassCounter increment = 5; + PatternFlowMplsTrafficClassCounter increment = 5; // Description missing in models - optional PatternFlowMplsTrafficClassCounter decrement = 6; + PatternFlowMplsTrafficClassCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19700,7 +19700,7 @@ message PatternFlowMplsBottomOfStackMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19744,10 +19744,10 @@ message PatternFlowMplsBottomOfStack { optional uint32 auto = 4; // Description missing in models - optional PatternFlowMplsBottomOfStackCounter increment = 6; + PatternFlowMplsBottomOfStackCounter increment = 6; // Description missing in models - optional PatternFlowMplsBottomOfStackCounter decrement = 7; + PatternFlowMplsBottomOfStackCounter decrement = 7; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear @@ -19779,7 +19779,7 @@ message PatternFlowMplsTimeToLiveMetricTag { // Name used to identify the metrics associated with the values applicable for configured // offset and length inside corresponding header field // required = true - string name = 1; + optional string name = 1; // Offset in bits relative to start of corresponding header field // default = 0 @@ -19816,10 +19816,10 @@ message PatternFlowMplsTimeToLive { repeated uint32 values = 3; // Description missing in models - optional PatternFlowMplsTimeToLiveCounter increment = 5; + PatternFlowMplsTimeToLiveCounter increment = 5; // Description missing in models - optional PatternFlowMplsTimeToLiveCounter decrement = 6; + PatternFlowMplsTimeToLiveCounter decrement = 6; // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear diff --git a/gosnappi/snappigo_test.go b/gosnappi/snappigo_test.go index c577f5bf..bc324083 100644 --- a/gosnappi/snappigo_test.go +++ b/gosnappi/snappigo_test.go @@ -233,8 +233,8 @@ func TestHttpGetMetricsPortResponse(t *testing.T) { assert.NotNil(t, resp) assert.Nil(t, err) assert.Equal(t, resp.PortMetrics().Items()[0].Name(), string("port1")) - assert.Equal(t, resp.PortMetrics().Items()[0].BytesTx(), int64(2000)) - assert.Equal(t, resp.PortMetrics().Items()[0].BytesRx(), int64(2000)) + assert.Equal(t, resp.PortMetrics().Items()[0].BytesTx(), uint64(2000)) + assert.Equal(t, resp.PortMetrics().Items()[0].BytesRx(), uint64(2000)) } func TestGetMetricsPortResponseError(t *testing.T) { @@ -283,7 +283,7 @@ func TestHttpGetMetricsBgpv4Response(t *testing.T) { assert.NotNil(t, resp) assert.Nil(t, err) assert.Equal(t, resp.Bgpv4Metrics().Items()[0].Name(), string("BGP-1")) - assert.Equal(t, resp.Bgpv4Metrics().Items()[0].RoutesAdvertised(), int32(80)) + assert.Equal(t, resp.Bgpv4Metrics().Items()[0].RoutesAdvertised(), uint32(80)) } func TestGetMetricsBgpv4ResponseError(t *testing.T) { diff --git a/requirements.txt b/requirements.txt index 2621e4fd..dbbac7aa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary protobuf~=4.23.3 ; python_version > '3.6' protobuf~=3.15.0 ; python_version <= '3.6' -PyYAML -requests -grpcio~=1.54.2 ; python_version > '3.6' grpcio-tools~=1.54.2 ; python_version > '3.6' +grpcio~=1.54.2 ; python_version > '3.6' grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' +PyYAML +requests urllib3 semantic_version diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index aa537a5b..f59df5b7 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.12.5 + version: 0.13.0 contact: url: https://github.com/open-traffic-generator/models license: diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index d354112b..b210b7c0 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88A8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\xbb\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xd4\x08\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12W\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsTypeH\x01\x88\x01\x01\x12]\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeH\x02\x88\x01\x01\x12W\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsTypeH\x03\x88\x01\x01\x12R\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueTypeH\x04\x88\x01\x01\x12N\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnTypeH\x05\x88\x01\x01\x12^\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeH\x06\x88\x01\x01\x12\x38\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomTypeH\x07\x88\x01\x01\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x1c\n\x1a_transitive_2octet_as_typeB\x1f\n\x1d_transitive_ipv4_address_typeB\x1c\n\x1a_transitive_4octet_as_typeB\x19\n\x17_transitive_opaque_typeB\x17\n\x15_transitive_evpn_typeB \n\x1e_non_transitive_2octet_as_typeB\t\n\x07_custom\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xdc\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12`\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTargetH\x01\x88\x01\x01\x12`\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xb2\x03\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12N\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColorH\x01\x88\x01\x01\x12^\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulationH\x02\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choiceB\x10\n\x0e_color_subtypeB\x18\n\x16_encapsulation_subtype\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\xaa\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12U\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMacH\x01\x88\x01\x01\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choiceB\x15\n\x13_router_mac_subtype\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xcf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x64\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidthH\x01\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choiceB\x19\n\x17_link_bandwidth_subtype\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\xbb\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x89\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1a\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.Event\x12#\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptions\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.Lldp\"g\n\rConfigOptions\x12&\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptions\x12.\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptions\"F\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_locationB\x07\n\x05_name\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x88\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\"\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocol\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_min_linksB\x07\n\x05_name\"z\n\x07LagPort\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacp\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x0c\n\n_port_name\"\xd0\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacp\x12&\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStatic\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choice\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"\x84\x01\n\x12\x44\x65viceEthernetBase\x12\x10\n\x03mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\xff\x01\n\x0e\x44\x65viceEthernet\x12+\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnection\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x10\n\x03mac\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x08 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xf3\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88A8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_idB\x07\n\x05_name\"\xbc\x01\n\nDeviceIpv4\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv4Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xbc\x01\n\nDeviceIpv6\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv6Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x92\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x34\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiation\x12,\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControl\x12\x11\n\x04name\x18\n \x01(\tH\x06\x88\x01\x01\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x07\n\x05_name\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xac\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12-\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbb\x12)\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023x\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choice\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\xa1\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x03\x88\x01\x01\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_formatB\x07\n\x05_name\"\xd6\x02\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustom\x12&\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernet\x12\x1e\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlan\x12\x1e\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4\x12\x1e\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choice\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\x9e\x01\n\x0f\x43\x61ptureEthernet\x12\x1e\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\x96\x01\n\x0b\x43\x61ptureVlan\x12#\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1d\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\xb4\x04\n\x0b\x43\x61ptureIpv4\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureField\"\xbb\x02\n\x0b\x43\x61ptureIpv6\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12&\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\"\xb6\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12#\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouter\x12!\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouter\x12\x1f\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlan\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpB\x07\n\x05_name\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\xf2\x02\n\x10\x44\x65viceIsisRouter\x12.\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstance\x12\x16\n\tsystem_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\x1d\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasic\x12#\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvanced\x12,\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthentication\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x11\n\x04name\x18\t \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_system_idB\x07\n\x05_name\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\x91\x06\n\rIsisInterface\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x02\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x03\x88\x01\x01\x12,\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12,\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12\x38\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthentication\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvanced\x12\x39\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtection\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\x0b\n\t_eth_nameB\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x07\n\x05_name\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xa4\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12=\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsB\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidth\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xed\x01\n\x1bIsisInterfaceAuthentication\x12\x46\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xae\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12.\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBase\x12\x30\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseB\x15\n\x13_ignore_receive_md5\"\xe3\x01\n\x16IsisAuthenticationBase\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd8\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x8c\x01\n\x0eV4RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8c\x01\n\x0eV6RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8d\x01\n\x0fMACRouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xd8\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x93\x01\n\x0f\x44\x65viceBgpRouter\x12\x16\n\trouter_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6InterfaceB\x0c\n\n_router_id\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xb2\x06\n\tBgpV4Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12\x30\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4PeerB\x0c\n\n_ipv4_name\"\xf0\x03\n\x14\x42gpV4EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xa8\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xd2\x03\n\x0e\x42gpCMacIpRange\x12+\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddress\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x00\x88\x01\x01\x12+\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddress\x12+\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddress\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x01\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12\x11\n\x04name\x18\x0b \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_l2vniB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x07\n\x05_name\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x94\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xf3\x06\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12R\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsType\x12X\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressType\x12R\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsType\x12M\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueType\x12I\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnType\x12Y\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsType\x12\x33\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomType\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa0\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xfc\x02\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12I\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColor\x12Y\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choice\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\x8e\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12P\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choice\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xaf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12_\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choice\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\x94\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\"\xfb\x06\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv4_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv4_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV4TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x97\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x11\n\x04name\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_weightB\x07\n\x05_nameB\t\n\x07_active\"\xdc\x06\n\x0e\x42gpSrteSegment\x12?\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.EnumH\x00\x88\x01\x01\x12.\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlv\x12.\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlv\x12.\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlv\x12.\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlv\x12.\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlv\x12.\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlv\x12.\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlv\x12.\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlv\x12.\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlv\x12.\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlv\x12.\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlv\x12\x11\n\x04name\x18\r \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x02\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\x0f\n\r_segment_typeB\x07\n\x05_nameB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xb2\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x02 \x01(\tH\x01\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0b\n\t_srv6_sid\"\xc7\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv4_node_address\"\xc7\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\xd3\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x14\n\x12_ipv4_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv4_addressB\x16\n\x14_remote_ipv4_address\"\xdd\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x05 \x01(\tH\x04\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xe8\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x14\n\x12_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd6\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x04\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x06\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd0\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x04\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_addressB\x0b\n\t_srv6_sid\"\xfa\x06\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv6_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv6_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV6TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\xe5\x06\n\tBgpV6Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRouting\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12\x30\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x05 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\x0e \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV6Interface\x12\x16\n\tipv6_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6PeerB\x0c\n\n_ipv6_name\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xf0\x03\n\x14\x42gpV6EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"\xa8\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xbb\x01\n\rVxlanV4Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xbb\x01\n\rVxlanV6Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xae\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"\xae\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xc5\x04\n\x11RsvpIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bneighbor_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\t\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\n\x88\x01\x01\x42\x0c\n\n_ipv4_nameB\x0e\n\x0c_neighbor_ipB\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xd0\x01\n\x14RsvpLspIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12G\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x0c\n\n_ipv4_name\"\xf1\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x02\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x03\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x07\n\x05_nameB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xab\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x06\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x34\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttribute\x12\x1d\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspec\x12*\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastReroute\x12\x19\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroB\x07\n\x05_nameB\x11\n\x0f_remote_addressB\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delay\"\xf0\x04\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x38\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesB\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desired\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\x8b\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12\x1b\n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSize\x12\x1b\n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRate\x12#\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDuration\x12!\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetrics\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xbc\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12\x1b\n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPort\x12\x1f\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouter\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choice\"`\n\x08\x46lowPort\x12\x14\n\x07tx_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_tx_nameB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\x92\x07\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustom\x12#\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernet\x12\x1b\n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlan\x12\x1d\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlan\x12\x1b\n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4\x12\x1b\n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6\x12#\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPause\x12-\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPause\x12\x19\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcp\x12\x19\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdp\x12\x19\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGre\x12\x1d\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1\x12\x1d\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2\x12\x19\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArp\x12\x1b\n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmp\x12\x1f\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6\x12\x19\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPpp\x12\x1f\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1\x12\x1b\n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMpls\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choice\"Y\n\nFlowCustom\x12\x12\n\x05\x62ytes\x18\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTagB\x08\n\x06_bytes\"q\n\x13\x46lowCustomMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xce\x01\n\x0c\x46lowEthernet\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherType\x12\x33\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueue\"\xac\x01\n\x08\x46lowVlan\x12.\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriority\x12$\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfi\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanId\x12&\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpid\"\xc3\x01\n\tFlowVxlan\x12)\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlags\x12\x31\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0\x12%\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVni\x12\x31\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1\"\xdd\x05\n\x08\x46lowIpv4\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4Version\x12\x37\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLength\x12\'\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4Priority\x12\x35\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLength\x12:\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4Identification\x12.\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Reserved\x12\x37\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragment\x12\x39\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragments\x12;\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffset\x12\x34\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLive\x12.\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Protocol\x12;\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksum\x12$\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4Src\x12$\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4Dst\"\x82\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12,\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRaw\x12\x1d\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4Tos\x12\x1f\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4Dscp\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choice\"b\n\x0c\x46lowIpv4Dscp\x12(\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhb\x12(\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcn\"\xc3\x02\n\x0b\x46lowIpv4Tos\x12\x35\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedence\x12+\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelay\x12\x35\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughput\x12\x37\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliability\x12\x31\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetary\x12-\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnused\"\x91\x03\n\x08\x46lowIpv6\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6Version\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClass\x12\x31\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabel\x12\x39\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLength\x12\x33\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeader\x12/\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimit\x12$\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Src\x12$\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Dst\"\x81\x06\n\x0c\x46lowPfcPause\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherType\x12>\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCode\x12\x46\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVector\x12:\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0\x12:\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1\x12:\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2\x12:\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3\x12:\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4\x12:\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5\x12:\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6\x12:\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7\"\xa3\x02\n\x11\x46lowEthernetPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDst\x12-\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrc\x12:\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherType\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCode\x12/\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTime\"\xa8\x05\n\x07\x46lowTcp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPort\x12*\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNum\x12*\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNum\x12\x32\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffset\x12(\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNs\x12*\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwr\x12,\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEcho\x12*\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrg\x12*\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAck\x12*\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPsh\x12*\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRst\x12*\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSyn\x12*\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFin\x12)\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindow\"\xbf\x01\n\x07\x46lowUdp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPort\x12)\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLength\x12-\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksum\"\xb4\x02\n\x07\x46lowGre\x12<\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresent\x12/\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0\x12+\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersion\x12-\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocol\x12-\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksum\x12/\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1\"\xbf\x05\n\tFlowGtpv1\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1Version\x12\x38\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolType\x12/\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1Reserved\x12*\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlag\x12*\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlag\x12,\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlag\x12\x36\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageType\x12:\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLength\x12\'\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1Teid\x12:\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumber\x12\x35\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumber\x12P\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderType\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtension\"\xe1\x01\n\x10\x46lowGtpExtension\x12\x45\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLength\x12\x36\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContents\x12N\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeader\"\xe3\x03\n\tFlowGtpv2\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2Version\x12@\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlag\x12\x30\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlag\x12+\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1\x12\x36\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageType\x12:\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLength\x12\'\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2Teid\x12<\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumber\x12+\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2\"\xb6\x04\n\x07\x46lowArp\x12\x36\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareType\x12\x36\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolType\x12:\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLength\x12:\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLength\x12/\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperation\x12\x43\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddr\x12\x43\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddr\x12\x43\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddr\x12\x43\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddr\"\x93\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEcho\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x93\x02\n\x0c\x46lowIcmpEcho\x12*\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoType\x12*\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCode\x12\x32\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksum\x12\x36\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifier\x12?\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumber\"\x99\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12!\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6Echo\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x9f\x02\n\x0e\x46lowIcmpv6Echo\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoType\x12,\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCode\x12\x38\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifier\x12\x41\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumber\x12\x34\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksum\"\x9b\x01\n\x07\x46lowPpp\x12+\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddress\x12+\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControl\x12\x36\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolType\"\x81\x02\n\nFlowIgmpv1\x12.\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1Version\x12(\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1Type\x12,\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1Unused\x12\x30\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1Checksum\x12\x39\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddress\"\xdf\x01\n\x08\x46lowMpls\x12(\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabel\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClass\x12:\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStack\x12\x34\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLive\"\xbe\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrement\x12#\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandom\x12.\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairs\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixed\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xd5\x02\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12,\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPackets\x12,\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSeconds\x12\x1d\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurst\x12\'\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuous\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choice\"I\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayB\x06\n\x04_gap\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"m\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_packetsB\x06\n\x04_gap\"m\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_secondsB\x06\n\x04_gap\"\xa0\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapB\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xfd\x01\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatio\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12(\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetrics\x12\x37\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsB\t\n\x07_enableB\x07\n\x05_lossB\r\n\x0b_timestamps\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xd6\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12+\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCount\x12\x12\n\x05value\x18\x03 \x01(\x02H\x01\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\xbf\x01\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLink\x12\x34\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThreshold\x12\x42\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawB\t\n\x07_enable\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"b\n\x11\x45ventSubscription\x12!\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequest\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_callback_url\"\xa5\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12&\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisId\x12 \n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortId\x12(\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemName\x12\x16\n\thold_time\x18\x05 \x01(\rH\x00\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x07 \x01(\tH\x02\x88\x01\x01\x42\x0c\n\n_hold_timeB\x19\n\x17_advertisement_intervalB\x07\n\x05_name\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xe1\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12\x37\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubType\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xdf\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x41\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubType\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa4\x01\n\x05\x45rror\x12\x11\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x01\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_codeB\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\x9c\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdate\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choice\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\xfd\x01\n\x0c\x43ontrolState\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.EnumH\x00\x88\x01\x01\x12\x1c\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePort\x12$\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocol\x12\"\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTraffic\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\t\n\x07_choice\"\xcb\x01\n\tStatePort\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLink\x12&\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCapture\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\t\n\x07_choice\"\xb9\x01\n\x0cStateTraffic\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.EnumH\x00\x88\x01\x01\x12\x34\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmit\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\t\n\x07_choice\"\x82\x02\n\rStateProtocol\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAll\x12&\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRoute\x12$\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacp\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\t\n\x07_choice\"\x94\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\x9d\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xc4\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.EnumH\x00\x88\x01\x01\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\x42\x08\n\x06_state\"\x89\x01\n\x10StateProtocolAll\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xa4\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.EnumH\x00\x88\x01\x01\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\x42\x08\n\x06_state\"\xb1\x01\n\x11StateProtocolLacp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.EnumH\x00\x88\x01\x01\x12*\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdmin\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\t\n\x07_choice\"\xac\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xa7\x01\n\rControlAction\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.EnumH\x00\x88\x01\x01\x12%\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"P\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12%\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponse\"\xb1\x01\n\x0e\x41\x63tionResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"\x84\x02\n\x0e\x41\x63tionProtocol\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4\x12%\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6\x12#\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgp\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\t\n\x07_choice\"\xf6\x01\n\x16\x41\x63tionResponseProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.EnumH\x00\x88\x01\x01\x12-\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4\x12-\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\t\n\x07_choice\"\xb1\x01\n\x12\x41\x63tionProtocolIpv4\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\x83\x02\n&ActionResponseProtocolIpv4PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb1\x01\n\x12\x41\x63tionProtocolIpv6\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\x83\x02\n&ActionResponseProtocolIpv6PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb7\x02\n\x11\x41\x63tionProtocolBgp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.EnumH\x00\x88\x01\x01\x12\x38\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotification\x12P\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestart\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\t\n\x07_choice\"\xd5\x05\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseError\x12>\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderError\x12:\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageError\x12>\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageError\x12:\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpired\x12I\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineError\x12)\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomError\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xb0\x04\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequest\x12%\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequest\x12\'\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequest\x12\'\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequest\x12%\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequest\x12#\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequest\x12%\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequest\x12%\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequest\x12%\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequest\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choice\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xb8\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x34\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilter\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\x88\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12(\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatency\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"\x93\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12(\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"S\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueB\x07\n\x05_name\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x94\x04\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequest\x12\x35\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequest\x12\x30\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequest\x12,\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequest\x12\x36\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequest\x12,\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequest\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv4State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv4_addressB\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv6State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv6_addressB\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xd1\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xd1\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xa6\x03\n\x0cIsisLspState\x12\x13\n\x06lsp_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x01\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x04\x88\x01\x01\x12 \n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlags\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x1e\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvs\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\t\n\x07_lsp_idB\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\n\n\x08_is_type\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\xfd\x02\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_type\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x80\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_type\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xe2\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspState\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_address\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"6\n\x0e\x43\x61ptureRequest\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_port_name\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x35\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPfcQueueMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowVlanPriorityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowVlanCfiMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n\x1aPatternFlowVlanIdMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf7\x02\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x30\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x30\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVlanTpidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVxlanVniMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x32\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x32\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TotalLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4IdentificationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4DontFragmentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4PriorityRawMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4TosDelayMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosThroughputMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv4TosUnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv6VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv6TrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv6FlowLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv6HopLimitMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8b\x01\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd6\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8c\x01\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xdb\x03\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetPauseTimeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpAckNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowTcpDataOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpWindowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowUdpLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGreChecksumPresentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGreVersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGreProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv1ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8d\x01\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe0\x03\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowGtpExtensionContentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x91\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf4\x03\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv2VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpHardwareTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpHardwareLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpProtocolLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowArpOperationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppControlMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowPppProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIgmpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIgmpv1UnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowMplsLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x33\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x33\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowMplsTrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowMplsBottomOfStackMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'otg_pb2', globals()) @@ -24,2773 +24,2773 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'Z\t./otg;otg' _CONFIG._serialized_start=82 - _CONFIG._serialized_end=380 - _CONFIGOPTIONS._serialized_start=383 - _CONFIGOPTIONS._serialized_end=534 - _PORT._serialized_start=536 - _PORT._serialized_end=592 - _PORTOPTIONS._serialized_start=594 - _PORTOPTIONS._serialized_end=665 - _LAG._serialized_start=668 - _LAG._serialized_end=808 - _LAGPORT._serialized_start=810 - _LAGPORT._serialized_end=927 - _LAGPROTOCOL._serialized_start=930 - _LAGPROTOCOL._serialized_end=1168 - _LAGPROTOCOL_CHOICE._serialized_start=1082 - _LAGPROTOCOL_CHOICE._serialized_end=1137 - _LAGPROTOCOL_CHOICE_ENUM._serialized_start=1092 - _LAGPROTOCOL_CHOICE_ENUM._serialized_end=1137 - _LAGPROTOCOLSTATIC._serialized_start=1170 - _LAGPROTOCOLSTATIC._serialized_end=1221 - _LAGPROTOCOLLACP._serialized_start=1224 - _LAGPROTOCOLLACP._serialized_end=1391 - _LAGPORTLACP._serialized_start=1394 - _LAGPORTLACP._serialized_end=1797 - _LAGPORTLACP_ACTORACTIVITY._serialized_start=1614 - _LAGPORTLACP_ACTORACTIVITY._serialized_end=1679 - _LAGPORTLACP_ACTORACTIVITY_ENUM._serialized_start=1631 - _LAGPORTLACP_ACTORACTIVITY_ENUM._serialized_end=1679 - _DEVICEETHERNETBASE._serialized_start=1799 - _DEVICEETHERNETBASE._serialized_end=1904 - _DEVICEETHERNET._serialized_start=1907 - _DEVICEETHERNET._serialized_end=2155 - _ETHERNETCONNECTION._serialized_start=2158 - _ETHERNETCONNECTION._serialized_end=2441 - _ETHERNETCONNECTION_CHOICE._serialized_start=2310 - _ETHERNETCONNECTION_CHOICE._serialized_end=2388 - _ETHERNETCONNECTION_CHOICE_ENUM._serialized_start=2320 - _ETHERNETCONNECTION_CHOICE_ENUM._serialized_end=2388 - _DEVICEVLAN._serialized_start=2444 - _DEVICEVLAN._serialized_end=2673 - _DEVICEVLAN_TPID._serialized_start=2558 - _DEVICEVLAN_TPID._serialized_end=2644 - _DEVICEVLAN_TPID_ENUM._serialized_start=2566 - _DEVICEVLAN_TPID_ENUM._serialized_end=2644 - _DEVICEIPV4._serialized_start=2676 - _DEVICEIPV4._serialized_end=2837 - _DEVICEIPV4LOOPBACK._serialized_start=2839 - _DEVICEIPV4LOOPBACK._serialized_end=2925 - _DEVICEIPV4GATEWAYMAC._serialized_start=2928 - _DEVICEIPV4GATEWAYMAC._serialized_end=3135 - _DEVICEIPV4GATEWAYMAC_CHOICE._serialized_start=3051 - _DEVICEIPV4GATEWAYMAC_CHOICE._serialized_end=3105 - _DEVICEIPV4GATEWAYMAC_CHOICE_ENUM._serialized_start=3061 - _DEVICEIPV4GATEWAYMAC_CHOICE_ENUM._serialized_end=3105 - _DEVICEIPV6._serialized_start=3138 - _DEVICEIPV6._serialized_end=3299 - _DEVICEIPV6LOOPBACK._serialized_start=3301 - _DEVICEIPV6LOOPBACK._serialized_end=3387 - _DEVICEIPV6GATEWAYMAC._serialized_start=3390 - _DEVICEIPV6GATEWAYMAC._serialized_end=3597 - _DEVICEIPV6GATEWAYMAC_CHOICE._serialized_start=3051 - _DEVICEIPV6GATEWAYMAC_CHOICE._serialized_end=3105 - _DEVICEIPV6GATEWAYMAC_CHOICE_ENUM._serialized_start=3061 - _DEVICEIPV6GATEWAYMAC_CHOICE_ENUM._serialized_end=3105 - _LAYER1._serialized_start=3600 - _LAYER1._serialized_end=4420 - _LAYER1_SPEED._serialized_start=3950 - _LAYER1_SPEED._serialized_end=4227 - _LAYER1_SPEED_ENUM._serialized_start=3960 - _LAYER1_SPEED_ENUM._serialized_end=4227 - _LAYER1_MEDIA._serialized_start=4229 - _LAYER1_MEDIA._serialized_end=4295 - _LAYER1_MEDIA_ENUM._serialized_start=4238 - _LAYER1_MEDIA_ENUM._serialized_end=4295 - _LAYER1AUTONEGOTIATION._serialized_start=4423 - _LAYER1AUTONEGOTIATION._serialized_end=4826 - _LAYER1FLOWCONTROL._serialized_start=4829 - _LAYER1FLOWCONTROL._serialized_end=5173 - _LAYER1FLOWCONTROL_CHOICE._serialized_start=5038 - _LAYER1FLOWCONTROL_CHOICE._serialized_end=5107 - _LAYER1FLOWCONTROL_CHOICE_ENUM._serialized_start=5048 - _LAYER1FLOWCONTROL_CHOICE_ENUM._serialized_end=5107 - _LAYER1IEEE8023X._serialized_start=5175 - _LAYER1IEEE8023X._serialized_end=5192 - _LAYER1IEEE8021QBB._serialized_start=5195 - _LAYER1IEEE8021QBB._serialized_end=5588 - _CAPTURE._serialized_start=5591 - _CAPTURE._serialized_end=5866 - _CAPTURE_FORMAT._serialized_start=5770 - _CAPTURE_FORMAT._serialized_end=5825 - _CAPTURE_FORMAT_ENUM._serialized_start=5780 - _CAPTURE_FORMAT_ENUM._serialized_end=5825 - _CAPTUREFILTER._serialized_start=5869 - _CAPTUREFILTER._serialized_end=6287 - _CAPTUREFILTER_CHOICE._serialized_start=6136 - _CAPTUREFILTER_CHOICE._serialized_end=6225 - _CAPTUREFILTER_CHOICE_ENUM._serialized_start=6146 - _CAPTUREFILTER_CHOICE_ENUM._serialized_end=6225 - _CAPTURECUSTOM._serialized_start=6290 - _CAPTURECUSTOM._serialized_end=6467 - _CAPTUREFIELD._serialized_start=6469 - _CAPTUREFIELD._serialized_end=6573 - _CAPTUREETHERNET._serialized_start=6576 - _CAPTUREETHERNET._serialized_end=6799 - _CAPTUREVLAN._serialized_start=6802 - _CAPTUREVLAN._serialized_end=7013 - _CAPTUREIPV4._serialized_start=7016 - _CAPTUREIPV4._serialized_end=7865 - _CAPTUREIPV6._serialized_start=7868 - _CAPTUREIPV6._serialized_end=8333 - _DEVICE._serialized_start=8336 - _DEVICE._serialized_end=8688 - _PROTOCOLOPTIONS._serialized_start=8690 - _PROTOCOLOPTIONS._serialized_end=8755 - _DEVICEISISROUTER._serialized_start=8758 - _DEVICEISISROUTER._serialized_end=9167 - _DEVICEISISMULTIINSTANCE._serialized_start=9169 - _DEVICEISISMULTIINSTANCE._serialized_end=9235 - _ISISINTERFACE._serialized_start=9238 - _ISISINTERFACE._serialized_end=10100 - _ISISINTERFACE_NETWORKTYPE._serialized_start=9821 - _ISISINTERFACE_NETWORKTYPE._serialized_end=9894 - _ISISINTERFACE_NETWORKTYPE_ENUM._serialized_start=9836 - _ISISINTERFACE_NETWORKTYPE_ENUM._serialized_end=9894 - _ISISINTERFACE_LEVELTYPE._serialized_start=9896 - _ISISINTERFACE_LEVELTYPE._serialized_end=9973 - _ISISINTERFACE_LEVELTYPE_ENUM._serialized_start=9909 - _ISISINTERFACE_LEVELTYPE_ENUM._serialized_end=9973 - _ISISINTERFACELEVEL._serialized_start=10103 - _ISISINTERFACELEVEL._serialized_end=10253 - _ISISMT._serialized_start=10255 - _ISISMT._serialized_end=10335 - _LINKSTATETE._serialized_start=10338 - _LINKSTATETE._serialized_end=10659 - _LINKSTATEPRIORITYBANDWIDTHS._serialized_start=10662 - _LINKSTATEPRIORITYBANDWIDTHS._serialized_end=10899 - _ISISINTERFACEAUTHENTICATION._serialized_start=10902 - _ISISINTERFACEAUTHENTICATION._serialized_end=11120 - _ISISINTERFACEAUTHENTICATION_AUTHTYPE._serialized_start=11041 - _ISISINTERFACEAUTHENTICATION_AUTHTYPE._serialized_end=11099 - _ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM._serialized_start=11053 - _ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM._serialized_end=11099 - _ISISINTERFACEADVANCED._serialized_start=11123 - _ISISINTERFACEADVANCED._serialized_end=11462 - _ISISINTERFACELINKPROTECTION._serialized_start=11465 - _ISISINTERFACELINKPROTECTION._serialized_end=11842 - _ISISBASIC._serialized_start=11845 - _ISISBASIC._serialized_end=12058 - _ISISADVANCED._serialized_start=12061 - _ISISADVANCED._serialized_end=12583 - _ISISAUTHENTICATION._serialized_start=12586 - _ISISAUTHENTICATION._serialized_end=12800 - _ISISAUTHENTICATIONBASE._serialized_start=12803 - _ISISAUTHENTICATIONBASE._serialized_end=13011 - _ISISAUTHENTICATIONBASE_AUTHTYPE._serialized_start=11041 - _ISISAUTHENTICATIONBASE_AUTHTYPE._serialized_end=11099 - _ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM._serialized_start=11053 - _ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM._serialized_end=11099 - _ISISV4ROUTERANGE._serialized_start=13014 - _ISISV4ROUTERANGE._serialized_end=13600 - _ISISV4ROUTERANGE_ORIGINTYPE._serialized_start=13357 - _ISISV4ROUTERANGE_ORIGINTYPE._serialized_end=13422 - _ISISV4ROUTERANGE_ORIGINTYPE_ENUM._serialized_start=13371 - _ISISV4ROUTERANGE_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE._serialized_start=13424 - _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE._serialized_end=13487 - _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 - _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _V4ROUTEADDRESS._serialized_start=13602 - _V4ROUTEADDRESS._serialized_end=13725 - _V6ROUTEADDRESS._serialized_start=13727 - _V6ROUTEADDRESS._serialized_end=13850 - _MACROUTEADDRESS._serialized_start=13852 - _MACROUTEADDRESS._serialized_end=13976 - _ISISV6ROUTERANGE._serialized_start=13979 - _ISISV6ROUTERANGE._serialized_end=14565 - _ISISV6ROUTERANGE_ORIGINTYPE._serialized_start=13357 - _ISISV6ROUTERANGE_ORIGINTYPE._serialized_end=13422 - _ISISV6ROUTERANGE_ORIGINTYPE_ENUM._serialized_start=13371 - _ISISV6ROUTERANGE_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE._serialized_start=13424 - _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE._serialized_end=13487 - _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 - _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _DEVICEBGPROUTER._serialized_start=14568 - _DEVICEBGPROUTER._serialized_end=14696 - _DEVICEBGPMESSAGEHEADERERROR._serialized_start=14699 - _DEVICEBGPMESSAGEHEADERERROR._serialized_end=14971 - _DEVICEBGPMESSAGEHEADERERROR_SUBCODE._serialized_start=14800 - _DEVICEBGPMESSAGEHEADERERROR_SUBCODE._serialized_end=14959 - _DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM._serialized_start=14812 - _DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM._serialized_end=14959 - _DEVICEBGPOPENMESSAGEERROR._serialized_start=14974 - _DEVICEBGPOPENMESSAGEERROR._serialized_end=15400 - _DEVICEBGPOPENMESSAGEERROR_SUBCODE._serialized_start=15071 - _DEVICEBGPOPENMESSAGEERROR_SUBCODE._serialized_end=15388 - _DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM._serialized_start=15083 - _DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM._serialized_end=15388 - _DEVICEBGPUPDATEMESSAGEERROR._serialized_start=15403 - _DEVICEBGPUPDATEMESSAGEERROR._serialized_end=16007 - _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE._serialized_start=15504 - _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE._serialized_end=15995 - _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM._serialized_start=15516 - _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM._serialized_end=15995 - _DEVICEBGPHOLDTIMEREXPIRED._serialized_start=16009 - _DEVICEBGPHOLDTIMEREXPIRED._serialized_end=16036 - _DEVICEBGPFINITESTATEMACHINEERROR._serialized_start=16038 - _DEVICEBGPFINITESTATEMACHINEERROR._serialized_end=16072 - _DEVICEBGPCEASEERROR._serialized_start=16075 - _DEVICEBGPCEASEERROR._serialized_end=16558 - _DEVICEBGPCEASEERROR_SUBCODE._serialized_start=16160 - _DEVICEBGPCEASEERROR_SUBCODE._serialized_end=16546 - _DEVICEBGPCEASEERROR_SUBCODE_ENUM._serialized_start=16172 - _DEVICEBGPCEASEERROR_SUBCODE_ENUM._serialized_end=16546 - _DEVICEBGPCUSTOMERROR._serialized_start=16560 - _DEVICEBGPCUSTOMERROR._serialized_end=16644 - _BGPV4PEER._serialized_start=16647 - _BGPV4PEER._serialized_end=17493 - _BGPV4PEER_ASTYPE._serialized_start=17279 - _BGPV4PEER_ASTYPE._serialized_end=17332 - _BGPV4PEER_ASTYPE_ENUM._serialized_start=17289 - _BGPV4PEER_ASTYPE_ENUM._serialized_end=17332 - _BGPV4PEER_ASNUMBERWIDTH._serialized_start=17334 - _BGPV4PEER_ASNUMBERWIDTH._serialized_end=17393 - _BGPV4PEER_ASNUMBERWIDTH_ENUM._serialized_start=17351 - _BGPV4PEER_ASNUMBERWIDTH_ENUM._serialized_end=17393 - _BGPV4INTERFACE._serialized_start=17495 - _BGPV4INTERFACE._serialized_end=17561 - _BGPV4ETHERNETSEGMENT._serialized_start=17564 - _BGPV4ETHERNETSEGMENT._serialized_end=18116 - _BGPV4ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17965 - _BGPV4ETHERNETSEGMENT_ACTIVEMODE._serialized_end=18037 - _BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17979 - _BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=18037 - _BGPETHERNETSEGMENTDFELECTION._serialized_start=18118 - _BGPETHERNETSEGMENTDFELECTION._serialized_end=18196 - _BGPROUTEADVANCED._serialized_start=18199 - _BGPROUTEADVANCED._serialized_end=18673 - _BGPROUTEADVANCED_ORIGIN._serialized_start=18460 - _BGPROUTEADVANCED_ORIGIN._serialized_end=18527 - _BGPROUTEADVANCED_ORIGIN_ENUM._serialized_start=18470 - _BGPROUTEADVANCED_ORIGIN_ENUM._serialized_end=18527 - _BGPCOMMUNITY._serialized_start=18676 - _BGPCOMMUNITY._serialized_end=18968 - _BGPCOMMUNITY_TYPE._serialized_start=18789 - _BGPCOMMUNITY_TYPE._serialized_end=18931 - _BGPCOMMUNITY_TYPE_ENUM._serialized_start=18798 - _BGPCOMMUNITY_TYPE_ENUM._serialized_end=18931 - _BGPEXTCOMMUNITY._serialized_start=18971 - _BGPEXTCOMMUNITY._serialized_end=19476 - _BGPEXTCOMMUNITY_TYPE._serialized_start=19119 - _BGPEXTCOMMUNITY_TYPE._serialized_end=19307 - _BGPEXTCOMMUNITY_TYPE_ENUM._serialized_start=19128 - _BGPEXTCOMMUNITY_TYPE_ENUM._serialized_end=19307 - _BGPEXTCOMMUNITY_SUBTYPE._serialized_start=19310 - _BGPEXTCOMMUNITY_SUBTYPE._serialized_end=19445 - _BGPEXTCOMMUNITY_SUBTYPE_ENUM._serialized_start=19321 - _BGPEXTCOMMUNITY_SUBTYPE_ENUM._serialized_end=19445 - _BGPASPATH._serialized_start=19479 - _BGPASPATH._serialized_end=19797 - _BGPASPATH_ASSETMODE._serialized_start=19591 - _BGPASPATH_ASSETMODE._serialized_end=19781 - _BGPASPATH_ASSETMODE_ENUM._serialized_start=19605 - _BGPASPATH_ASSETMODE_ENUM._serialized_end=19781 - _BGPASPATHSEGMENT._serialized_start=19800 - _BGPASPATHSEGMENT._serialized_end=19994 - _BGPASPATHSEGMENT_TYPE._serialized_start=19892 - _BGPASPATHSEGMENT_TYPE._serialized_end=19985 - _BGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19900 - _BGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19985 - _BGPV4EVPNEVIS._serialized_start=19997 - _BGPV4EVPNEVIS._serialized_end=20184 - _BGPV4EVPNEVIS_CHOICE._serialized_start=20111 - _BGPV4EVPNEVIS_CHOICE._serialized_end=20159 - _BGPV4EVPNEVIS_CHOICE_ENUM._serialized_start=20121 - _BGPV4EVPNEVIS_CHOICE_ENUM._serialized_end=20159 - _BGPV4EVIVXLAN._serialized_start=20187 - _BGPV4EVIVXLAN._serialized_end=20990 - _BGPV4EVIVXLAN_REPLICATIONTYPE._serialized_start=20825 - _BGPV4EVIVXLAN_REPLICATIONTYPE._serialized_end=20892 - _BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20844 - _BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20892 - _BGPV4EVIVXLANBROADCASTDOMAIN._serialized_start=20993 - _BGPV4EVIVXLANBROADCASTDOMAIN._serialized_end=21173 - _BGPCMACIPRANGE._serialized_start=21176 - _BGPCMACIPRANGE._serialized_end=21734 - _BGPROUTEDISTINGUISHER._serialized_start=21737 - _BGPROUTEDISTINGUISHER._serialized_end=22017 - _BGPROUTEDISTINGUISHER_RDTYPE._serialized_start=21884 - _BGPROUTEDISTINGUISHER_RDTYPE._serialized_end=21965 - _BGPROUTEDISTINGUISHER_RDTYPE_ENUM._serialized_start=21894 - _BGPROUTEDISTINGUISHER_RDTYPE_ENUM._serialized_end=21965 - _BGPROUTETARGET._serialized_start=22020 - _BGPROUTETARGET._serialized_end=22222 - _BGPROUTETARGET_RTTYPE._serialized_start=22116 - _BGPROUTETARGET_RTTYPE._serialized_end=22197 - _BGPROUTETARGET_RTTYPE_ENUM._serialized_start=21894 - _BGPROUTETARGET_RTTYPE_ENUM._serialized_end=21965 - _BGPADVANCED._serialized_start=22225 - _BGPADVANCED._serialized_end=22480 - _BGPCAPABILITY._serialized_start=22483 - _BGPCAPABILITY._serialized_end=23780 - _BGPLEARNEDINFORMATIONFILTER._serialized_start=23783 - _BGPLEARNEDINFORMATIONFILTER._serialized_end=23928 - _BGPV4ROUTERANGE._serialized_start=23931 - _BGPV4ROUTERANGE._serialized_end=24758 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=24493 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=24557 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 - _BGPADDPATH._serialized_start=24760 - _BGPADDPATH._serialized_end=24806 - _BGPEXTENDEDCOMMUNITY._serialized_start=24809 - _BGPEXTENDEDCOMMUNITY._serialized_end=25917 - _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_start=25485 - _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_end=25716 - _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_start=25496 - _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_end=25716 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_start=25920 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_end=26079 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_start=26082 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_end=26241 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_start=26244 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_end=26708 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=26562 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 - _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_start=26711 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_end=26877 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_start=26880 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_end=27046 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_start=27049 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_end=27525 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_start=26562 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_start=26572 - _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_start=27528 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_end=27687 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_start=27690 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_end=27849 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_start=27852 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_end=28316 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_start=26562 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 - _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_start=28318 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_end=28425 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_start=28428 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_end=28561 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_start=28564 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_end=28998 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_start=28864 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_end=28943 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_start=28874 - _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_end=28943 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_start=29000 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_end=29089 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_start=29092 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_end=29390 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_start=29299 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_end=29356 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_start=29309 - _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_end=29356 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_start=29393 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_end=29541 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_start=29544 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_end=29879 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=29780 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=29841 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=29790 - _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=29841 - _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_start=29882 - _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_end=30046 - _BGPV6ROUTERANGE._serialized_start=30049 - _BGPV6ROUTERANGE._serialized_end=30876 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=24493 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=24557 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 - _BGPSRTEV4POLICY._serialized_start=30879 - _BGPSRTEV4POLICY._serialized_end=31786 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=24493 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=24557 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 - _BGPSRTEV4TUNNELTLV._serialized_start=31789 - _BGPSRTEV4TUNNELTLV._serialized_end=32556 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=32559 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=32877 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=32750 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=32810 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=24581 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=24624 - _BGPSRTECOLORSUBTLV._serialized_start=32879 - _BGPSRTECOLORSUBTLV._serialized_end=32929 - _BGPSRTEBINDINGSUBTLV._serialized_start=32932 - _BGPSRTEBINDINGSUBTLV._serialized_end=33294 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=33128 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=33219 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=33146 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=33219 - _BGPSRTEPREFERENCESUBTLV._serialized_start=33296 - _BGPSRTEPREFERENCESUBTLV._serialized_end=33361 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=33363 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=33442 - _BGPSRTEPOLICYNAMESUBTLV._serialized_start=33444 - _BGPSRTEPOLICYNAMESUBTLV._serialized_end=33511 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=33514 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=33856 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=33668 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=33825 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=33696 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=33825 - _BGPSRTESEGMENTLIST._serialized_start=33859 - _BGPSRTESEGMENTLIST._serialized_end=33996 - _BGPSRTESEGMENT._serialized_start=33999 - _BGPSRTESEGMENT._serialized_end=34999 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=34696 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=34867 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=34712 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=34867 - _BGPSRTESRMPLSSID._serialized_start=35002 - _BGPSRTESRMPLSSID._serialized_end=35130 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=35133 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=35335 - _BGPSRTESEGMENTATYPESUBTLV._serialized_start=35338 - _BGPSRTESEGMENTATYPESUBTLV._serialized_end=35505 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=35508 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=35704 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=35707 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=35900 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=35903 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=36096 - _BGPSRTESEGMENTETYPESUBTLV._serialized_start=36099 - _BGPSRTESEGMENTETYPESUBTLV._serialized_end=36304 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=36307 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=36486 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=36489 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=36792 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=36795 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=36974 - _BGPSRTESEGMENTITYPESUBTLV._serialized_start=36977 - _BGPSRTESEGMENTITYPESUBTLV._serialized_end=37218 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=37221 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=37660 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=37663 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=37978 - _BGPSRTEV6POLICY._serialized_start=37981 - _BGPSRTEV6POLICY._serialized_end=38887 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=24493 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=24557 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 - _BGPSRTEV6TUNNELTLV._serialized_start=38890 - _BGPSRTEV6TUNNELTLV._serialized_end=39657 - _BGPGRACEFULRESTART._serialized_start=39660 - _BGPGRACEFULRESTART._serialized_end=39844 - _BGPV6PEER._serialized_start=39847 - _BGPV6PEER._serialized_end=40769 - _BGPV6PEER_ASTYPE._serialized_start=17279 - _BGPV6PEER_ASTYPE._serialized_end=17332 - _BGPV6PEER_ASTYPE_ENUM._serialized_start=17289 - _BGPV6PEER_ASTYPE_ENUM._serialized_end=17332 - _BGPV6PEER_ASNUMBERWIDTH._serialized_start=17334 - _BGPV6PEER_ASNUMBERWIDTH._serialized_end=17393 - _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_start=17351 - _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_end=17393 - _BGPV6INTERFACE._serialized_start=40771 - _BGPV6INTERFACE._serialized_end=40837 - _BGPV6SEGMENTROUTING._serialized_start=40840 - _BGPV6SEGMENTROUTING._serialized_end=41337 - _BGPV6ETHERNETSEGMENT._serialized_start=41340 - _BGPV6ETHERNETSEGMENT._serialized_end=41892 - _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17965 - _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_end=18037 - _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17979 - _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=18037 - _BGPV6EVPNEVIS._serialized_start=41895 - _BGPV6EVPNEVIS._serialized_end=42082 - _BGPV6EVPNEVIS_CHOICE._serialized_start=20111 - _BGPV6EVPNEVIS_CHOICE._serialized_end=20159 - _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_start=20121 - _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_end=20159 - _BGPV6EVIVXLAN._serialized_start=42085 - _BGPV6EVIVXLAN._serialized_end=42888 - _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_start=20825 - _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_end=20892 - _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20844 - _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20892 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=42891 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=43071 - _DEVICEVXLAN._serialized_start=43073 - _DEVICEVXLAN._serialized_end=43166 - _VXLANV4TUNNEL._serialized_start=43169 - _VXLANV4TUNNEL._serialized_end=43332 - _VXLANV6TUNNEL._serialized_start=43335 - _VXLANV6TUNNEL._serialized_end=43498 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=43501 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=43839 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=43842 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=44180 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44182 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44284 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44286 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44388 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=44391 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=44541 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44544 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44737 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44740 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44933 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=44935 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45010 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=45012 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45087 - _DEVICERSVP._serialized_start=45090 - _DEVICERSVP._serialized_end=45235 - _RSVPIPV4INTERFACE._serialized_start=45238 - _RSVPIPV4INTERFACE._serialized_end=45779 - _RSVPLSPIPV4INTERFACE._serialized_start=45782 - _RSVPLSPIPV4INTERFACE._serialized_end=46001 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=46004 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=46487 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=46284 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=46376 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=46304 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=46376 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=46490 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=47084 - _RSVPSESSIONATTRIBUTE._serialized_start=47087 - _RSVPSESSIONATTRIBUTE._serialized_end=47740 - _RSVPRESOURCEAFFINITIES._serialized_start=47743 - _RSVPRESOURCEAFFINITIES._serialized_end=47893 - _RSVPTSPEC._serialized_start=47896 - _RSVPTSPEC._serialized_end=48183 - _RSVPFASTREROUTE._serialized_start=48186 - _RSVPFASTREROUTE._serialized_end=48641 - _RSVPERO._serialized_start=48644 - _RSVPERO._serialized_end=48940 - _RSVPERO_PREPENDNEIGHBORIP._serialized_start=48797 - _RSVPERO_PREPENDNEIGHBORIP._serialized_end=48898 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=48818 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=48898 - _RSVPEROSUBOBJECT._serialized_start=48943 - _RSVPEROSUBOBJECT._serialized_end=49339 - _RSVPEROSUBOBJECT_TYPE._serialized_start=49153 - _RSVPEROSUBOBJECT_TYPE._serialized_end=49209 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=49161 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=49209 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=49211 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=49268 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=49222 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=49268 - _FLOW._serialized_start=49342 - _FLOW._serialized_end=49658 - _FLOWTXRX._serialized_start=49661 - _FLOWTXRX._serialized_end=49879 - _FLOWTXRX_CHOICE._serialized_start=49793 - _FLOWTXRX_CHOICE._serialized_end=49848 - _FLOWTXRX_CHOICE_ENUM._serialized_start=49803 - _FLOWTXRX_CHOICE_ENUM._serialized_end=49848 - _FLOWPORT._serialized_start=49881 - _FLOWPORT._serialized_end=49960 - _FLOWROUTER._serialized_start=49963 - _FLOWROUTER._serialized_end=50125 - _FLOWROUTER_MODE._serialized_start=50059 - _FLOWROUTER_MODE._serialized_end=50116 - _FLOWROUTER_MODE_ENUM._serialized_start=50067 - _FLOWROUTER_MODE_ENUM._serialized_end=50116 - _FLOWHEADER._serialized_start=50128 - _FLOWHEADER._serialized_end=51329 - _FLOWHEADER_CHOICE._serialized_start=50881 - _FLOWHEADER_CHOICE._serialized_end=51126 - _FLOWHEADER_CHOICE_ENUM._serialized_start=50892 - _FLOWHEADER_CHOICE_ENUM._serialized_end=51126 - _FLOWCUSTOM._serialized_start=51331 - _FLOWCUSTOM._serialized_end=51405 - _FLOWCUSTOMMETRICTAG._serialized_start=51407 - _FLOWCUSTOMMETRICTAG._serialized_end=51506 - _FLOWETHERNET._serialized_start=51509 - _FLOWETHERNET._serialized_end=51780 - _FLOWVLAN._serialized_start=51783 - _FLOWVLAN._serialized_end=52012 - _FLOWVXLAN._serialized_start=52015 - _FLOWVXLAN._serialized_end=52276 - _FLOWIPV4._serialized_start=52279 - _FLOWIPV4._serialized_end=53297 - _FLOWIPV4PRIORITY._serialized_start=53300 - _FLOWIPV4PRIORITY._serialized_end=53598 - _FLOWIPV4PRIORITY_CHOICE._serialized_start=53501 - _FLOWIPV4PRIORITY_CHOICE._serialized_end=53562 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=53511 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=53562 - _FLOWIPV4DSCP._serialized_start=53600 - _FLOWIPV4DSCP._serialized_end=53724 - _FLOWIPV4TOS._serialized_start=53727 - _FLOWIPV4TOS._serialized_end=54160 - _FLOWIPV6._serialized_start=54163 - _FLOWIPV6._serialized_end=54714 - _FLOWPFCPAUSE._serialized_start=54717 - _FLOWPFCPAUSE._serialized_end=55770 - _FLOWETHERNETPAUSE._serialized_start=55773 - _FLOWETHERNETPAUSE._serialized_end=56149 - _FLOWTCP._serialized_start=56152 - _FLOWTCP._serialized_end=57092 - _FLOWUDP._serialized_start=57095 - _FLOWUDP._serialized_end=57356 - _FLOWGRE._serialized_start=57359 - _FLOWGRE._serialized_end=57784 - _FLOWGTPV1._serialized_start=57787 - _FLOWGTPV1._serialized_end=58739 - _FLOWGTPEXTENSION._serialized_start=58742 - _FLOWGTPEXTENSION._serialized_end=59042 - _FLOWGTPV2._serialized_start=59045 - _FLOWGTPV2._serialized_end=59708 - _FLOWARP._serialized_start=59711 - _FLOWARP._serialized_end=60512 - _FLOWICMP._serialized_start=60515 - _FLOWICMP._serialized_end=60676 - _FLOWICMP_CHOICE._serialized_start=60613 - _FLOWICMP_CHOICE._serialized_end=60656 - _FLOWICMP_CHOICE_ENUM._serialized_start=60623 - _FLOWICMP_CHOICE_ENUM._serialized_end=60656 - _FLOWICMPECHO._serialized_start=60679 - _FLOWICMPECHO._serialized_end=61045 - _FLOWICMPV6._serialized_start=61048 - _FLOWICMPV6._serialized_end=61215 - _FLOWICMPV6_CHOICE._serialized_start=60613 - _FLOWICMPV6_CHOICE._serialized_end=60656 - _FLOWICMPV6_CHOICE_ENUM._serialized_start=60623 - _FLOWICMPV6_CHOICE_ENUM._serialized_end=60656 - _FLOWICMPV6ECHO._serialized_start=61218 - _FLOWICMPV6ECHO._serialized_end=61596 - _FLOWPPP._serialized_start=61599 - _FLOWPPP._serialized_end=61811 - _FLOWIGMPV1._serialized_start=61814 - _FLOWIGMPV1._serialized_end=62159 - _FLOWMPLS._serialized_start=62162 - _FLOWMPLS._serialized_end=62470 - _FLOWSIZE._serialized_start=62473 - _FLOWSIZE._serialized_end=62848 - _FLOWSIZE_CHOICE._serialized_start=62696 - _FLOWSIZE_CHOICE._serialized_end=62785 - _FLOWSIZE_CHOICE_ENUM._serialized_start=62706 - _FLOWSIZE_CHOICE_ENUM._serialized_end=62785 - _FLOWSIZEINCREMENT._serialized_start=62850 - _FLOWSIZEINCREMENT._serialized_end=62953 - _FLOWSIZERANDOM._serialized_start=62955 - _FLOWSIZERANDOM._serialized_end=63023 - _FLOWSIZEWEIGHTPAIRS._serialized_start=63026 - _FLOWSIZEWEIGHTPAIRS._serialized_end=63423 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=63223 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=63284 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=63233 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=63284 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=63286 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=63397 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=63300 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=63397 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=63425 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=63512 - _FLOWRATE._serialized_start=63515 - _FLOWRATE._serialized_end=63859 - _FLOWRATE_CHOICE._serialized_start=63693 - _FLOWRATE_CHOICE._serialized_end=63790 - _FLOWRATE_CHOICE_ENUM._serialized_start=63703 - _FLOWRATE_CHOICE_ENUM._serialized_end=63790 - _FLOWDURATION._serialized_start=63862 - _FLOWDURATION._serialized_end=64284 - _FLOWDURATION_CHOICE._serialized_start=64114 - _FLOWDURATION_CHOICE._serialized_end=64212 - _FLOWDURATION_CHOICE_ENUM._serialized_start=64124 - _FLOWDURATION_CHOICE_ENUM._serialized_end=64212 - _FLOWCONTINUOUS._serialized_start=64286 - _FLOWCONTINUOUS._serialized_end=64374 - _FLOWDELAY._serialized_start=64377 - _FLOWDELAY._serialized_end=64645 - _FLOWDELAY_CHOICE._serialized_start=64512 - _FLOWDELAY_CHOICE._serialized_end=64591 - _FLOWDELAY_CHOICE_ENUM._serialized_start=64522 - _FLOWDELAY_CHOICE_ENUM._serialized_end=64591 - _FLOWFIXEDPACKETS._serialized_start=64647 - _FLOWFIXEDPACKETS._serialized_end=64771 - _FLOWFIXEDSECONDS._serialized_start=64773 - _FLOWFIXEDSECONDS._serialized_end=64897 - _FLOWBURST._serialized_start=64900 - _FLOWBURST._serialized_end=65085 - _FLOWDURATIONINTERBURSTGAP._serialized_start=65088 - _FLOWDURATIONINTERBURSTGAP._serialized_end=65388 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=64512 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=64591 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=64522 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=64591 - _FLOWMETRICS._serialized_start=65391 - _FLOWMETRICS._serialized_end=65714 - _FLOWLATENCYMETRICS._serialized_start=65717 - _FLOWLATENCYMETRICS._serialized_end=65901 - _FLOWLATENCYMETRICS_MODE._serialized_start=65814 - _FLOWLATENCYMETRICS_MODE._serialized_end=65881 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=65822 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=65881 - _FLOWPREDEFINEDTAGS._serialized_start=65903 - _FLOWPREDEFINEDTAGS._serialized_end=65957 - _FLOWRXTXRATIO._serialized_start=65960 - _FLOWRXTXRATIO._serialized_end=66192 - _FLOWRXTXRATIO_CHOICE._serialized_start=66100 - _FLOWRXTXRATIO_CHOICE._serialized_end=66158 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=66110 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=66158 - _FLOWRXTXRATIORXCOUNT._serialized_start=66194 - _FLOWRXTXRATIORXCOUNT._serialized_end=66216 - _EVENT._serialized_start=66219 - _EVENT._serialized_end=66485 - _EVENTRXRATETHRESHOLD._serialized_start=66487 - _EVENTRXRATETHRESHOLD._serialized_end=66579 - _EVENTLINK._serialized_start=66581 - _EVENTLINK._serialized_end=66624 - _EVENTROUTEADVERTISEWITHDRAW._serialized_start=66626 - _EVENTROUTEADVERTISEWITHDRAW._serialized_end=66687 - _EVENTREQUEST._serialized_start=66690 - _EVENTREQUEST._serialized_end=66935 - _EVENTREQUEST_TYPE._serialized_start=66766 - _EVENTREQUEST_TYPE._serialized_end=66935 - _EVENTREQUEST_TYPE_ENUM._serialized_start=66775 - _EVENTREQUEST_TYPE_ENUM._serialized_end=66935 - _EVENTSUBSCRIPTION._serialized_start=66937 - _EVENTSUBSCRIPTION._serialized_end=67051 - _LLDP._serialized_start=67054 - _LLDP._serialized_end=67391 - _LLDPCONNECTION._serialized_start=67394 - _LLDPCONNECTION._serialized_end=67563 - _LLDPCONNECTION_CHOICE._serialized_start=67490 - _LLDPCONNECTION_CHOICE._serialized_end=67538 - _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2320 - _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2358 - _LLDPCHASSISID._serialized_start=67566 - _LLDPCHASSISID._serialized_end=67948 - _LLDPCHASSISID_CHOICE._serialized_start=67763 - _LLDPCHASSISID_CHOICE._serialized_end=67868 - _LLDPCHASSISID_CHOICE_ENUM._serialized_start=67773 - _LLDPCHASSISID_CHOICE_ENUM._serialized_end=67868 - _LLDPPORTID._serialized_start=67951 - _LLDPPORTID._serialized_end=68334 - _LLDPPORTID_CHOICE._serialized_start=67763 - _LLDPPORTID_CHOICE._serialized_end=67868 - _LLDPPORTID_CHOICE_ENUM._serialized_start=67773 - _LLDPPORTID_CHOICE_ENUM._serialized_end=67868 - _LLDPCHASSISMACSUBTYPE._serialized_start=68337 - _LLDPCHASSISMACSUBTYPE._serialized_end=68546 - _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3051 - _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3105 - _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3061 - _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=68549 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=68772 - _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3051 - _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3105 - _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3061 - _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPSYSTEMNAME._serialized_start=68775 - _LLDPSYSTEMNAME._serialized_end=68970 - _LLDPSYSTEMNAME_CHOICE._serialized_start=3051 - _LLDPSYSTEMNAME_CHOICE._serialized_end=3105 - _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3061 - _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3105 - _ERROR._serialized_start=68973 - _ERROR._serialized_end=69123 - _ERROR_KIND._serialized_start=69053 - _ERROR_KIND._serialized_end=69114 - _ERROR_KIND_ENUM._serialized_start=69061 - _ERROR_KIND_ENUM._serialized_end=69114 - _WARNING._serialized_start=69125 - _WARNING._serialized_end=69152 - _CONFIGUPDATE._serialized_start=69155 - _CONFIGUPDATE._serialized_end=69326 - _CONFIGUPDATE_CHOICE._serialized_start=69261 - _CONFIGUPDATE_CHOICE._serialized_end=69305 - _CONFIGUPDATE_CHOICE_ENUM._serialized_start=69271 - _CONFIGUPDATE_CHOICE_ENUM._serialized_end=69305 - _FLOWSUPDATE._serialized_start=69329 - _FLOWSUPDATE._serialized_end=69491 - _FLOWSUPDATE_PROPERTYNAMES._serialized_start=69431 - _FLOWSUPDATE_PROPERTYNAMES._serialized_end=69491 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=69448 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=69491 - _CONTROLSTATE._serialized_start=69494 - _CONTROLSTATE._serialized_end=69780 - _CONTROLSTATE_CHOICE._serialized_start=69676 - _CONTROLSTATE_CHOICE._serialized_end=69746 - _CONTROLSTATE_CHOICE_ENUM._serialized_start=69686 - _CONTROLSTATE_CHOICE_ENUM._serialized_end=69746 - _STATEPORT._serialized_start=69783 - _STATEPORT._serialized_end=70001 - _STATEPORT_CHOICE._serialized_start=69924 - _STATEPORT_CHOICE._serialized_end=69980 - _STATEPORT_CHOICE_ENUM._serialized_start=69934 - _STATEPORT_CHOICE_ENUM._serialized_end=69980 - _STATETRAFFIC._serialized_start=70004 - _STATETRAFFIC._serialized_end=70196 - _STATETRAFFIC_CHOICE._serialized_start=70126 - _STATETRAFFIC_CHOICE._serialized_end=70178 - _STATETRAFFIC_CHOICE_ENUM._serialized_start=70136 - _STATETRAFFIC_CHOICE_ENUM._serialized_end=70178 - _STATEPROTOCOL._serialized_start=70199 - _STATEPROTOCOL._serialized_end=70483 - _STATEPROTOCOL_CHOICE._serialized_start=70393 - _STATEPROTOCOL_CHOICE._serialized_end=70456 - _STATEPROTOCOL_CHOICE_ENUM._serialized_start=70403 - _STATEPROTOCOL_CHOICE_ENUM._serialized_end=70456 - _STATEPORTLINK._serialized_start=70486 - _STATEPORTLINK._serialized_end=70619 - _STATEPORTLINK_STATE._serialized_start=70569 - _STATEPORTLINK_STATE._serialized_end=70619 - _STATEPORTLINK_STATE_ENUM._serialized_start=13446 - _STATEPORTLINK_STATE_ENUM._serialized_end=13487 - _STATEPORTCAPTURE._serialized_start=70622 - _STATEPORTCAPTURE._serialized_end=70764 - _STATEPORTCAPTURE_STATE._serialized_start=70711 - _STATEPORTCAPTURE_STATE._serialized_end=70764 - _STATEPORTCAPTURE_STATE_ENUM._serialized_start=70720 - _STATEPORTCAPTURE_STATE_ENUM._serialized_end=70764 - _STATETRAFFICFLOWTRANSMIT._serialized_start=70767 - _STATETRAFFICFLOWTRANSMIT._serialized_end=70948 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=70872 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=70948 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=70881 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=70948 - _STATEPROTOCOLALL._serialized_start=70950 - _STATEPROTOCOLALL._serialized_end=71072 - _STATEPROTOCOLALL_STATE._serialized_start=70711 - _STATEPROTOCOLALL_STATE._serialized_end=70764 - _STATEPROTOCOLALL_STATE_ENUM._serialized_start=70720 - _STATEPROTOCOLALL_STATE_ENUM._serialized_end=70764 - _STATEPROTOCOLROUTE._serialized_start=71075 - _STATEPROTOCOLROUTE._serialized_end=71224 - _STATEPROTOCOLROUTE_STATE._serialized_start=71163 - _STATEPROTOCOLROUTE_STATE._serialized_end=71224 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=71172 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=71224 - _STATEPROTOCOLLACP._serialized_start=71227 - _STATEPROTOCOLLACP._serialized_end=71403 - _STATEPROTOCOLLACP_CHOICE._serialized_start=71349 - _STATEPROTOCOLLACP_CHOICE._serialized_end=71393 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=71359 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=71393 - _STATEPROTOCOLLACPADMIN._serialized_start=71406 - _STATEPROTOCOLLACPADMIN._serialized_end=71563 - _STATEPROTOCOLLACPADMIN_STATE._serialized_start=70569 - _STATEPROTOCOLLACPADMIN_STATE._serialized_end=70619 - _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=13446 - _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=13487 - _CONTROLACTION._serialized_start=71566 - _CONTROLACTION._serialized_end=71735 - _CONTROLACTION_CHOICE._serialized_start=71675 - _CONTROLACTION_CHOICE._serialized_end=71722 - _CONTROLACTION_CHOICE_ENUM._serialized_start=71685 - _CONTROLACTION_CHOICE_ENUM._serialized_end=71722 - _CONTROLACTIONRESPONSE._serialized_start=71737 - _CONTROLACTIONRESPONSE._serialized_end=71835 - _ACTIONRESPONSE._serialized_start=71838 - _ACTIONRESPONSE._serialized_end=72017 - _ACTIONRESPONSE_CHOICE._serialized_start=71675 - _ACTIONRESPONSE_CHOICE._serialized_end=71722 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=71685 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=71722 - _ACTIONPROTOCOL._serialized_start=72020 - _ACTIONPROTOCOL._serialized_end=72305 - _ACTIONPROTOCOL_CHOICE._serialized_start=72217 - _ACTIONPROTOCOL_CHOICE._serialized_end=72279 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=72227 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=72279 - _ACTIONRESPONSEPROTOCOL._serialized_start=72308 - _ACTIONRESPONSEPROTOCOL._serialized_end=72566 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=72495 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=72548 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24581 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24624 - _ACTIONPROTOCOLIPV4._serialized_start=72569 - _ACTIONPROTOCOLIPV4._serialized_end=72744 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=72692 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=72735 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=72747 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=72946 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=72692 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=72735 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 - _ACTIONPROTOCOLIPV4PING._serialized_start=72948 - _ACTIONPROTOCOLIPV4PING._serialized_end=73026 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=73028 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=73127 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=73129 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=73225 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=73228 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=73437 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=73377 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=73437 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=73387 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=73437 - _ACTIONPROTOCOLIPV6._serialized_start=73440 - _ACTIONPROTOCOLIPV6._serialized_end=73615 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=72692 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=72735 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=73618 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=73817 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=72692 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=72735 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 - _ACTIONPROTOCOLIPV6PING._serialized_start=73819 - _ACTIONPROTOCOLIPV6PING._serialized_end=73897 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=73899 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=73998 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=74000 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=74096 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=74099 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=74308 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=73377 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=73437 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=73387 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=73437 - _ACTIONPROTOCOLBGP._serialized_start=74311 - _ACTIONPROTOCOLBGP._serialized_end=74663 - _ACTIONPROTOCOLBGP_CHOICE._serialized_start=74534 - _ACTIONPROTOCOLBGP_CHOICE._serialized_end=74616 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=74544 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=74616 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=74666 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=75574 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=75226 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=75415 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=75237 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=75415 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=75576 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=75684 - _METRICSREQUEST._serialized_start=75687 - _METRICSREQUEST._serialized_end=76374 - _METRICSREQUEST_CHOICE._serialized_start=76157 - _METRICSREQUEST_CHOICE._serialized_end=76281 - _METRICSREQUEST_CHOICE_ENUM._serialized_start=76167 - _METRICSREQUEST_CHOICE_ENUM._serialized_end=76281 - _METRICSRESPONSE._serialized_start=76377 - _METRICSRESPONSE._serialized_end=77013 - _METRICSRESPONSE_CHOICE._serialized_start=76805 - _METRICSRESPONSE_CHOICE._serialized_end=77002 - _METRICSRESPONSE_CHOICE_ENUM._serialized_start=76816 - _METRICSRESPONSE_CHOICE_ENUM._serialized_end=77002 - _PORTMETRICSREQUEST._serialized_start=77016 - _PORTMETRICSREQUEST._serialized_end=77349 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=77123 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=77349 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=77139 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=77349 - _PORTMETRIC._serialized_start=77352 - _PORTMETRIC._serialized_end=78126 - _PORTMETRIC_LINK._serialized_start=77768 - _PORTMETRIC_LINK._serialized_end=77817 - _PORTMETRIC_LINK_ENUM._serialized_start=13446 - _PORTMETRIC_LINK_ENUM._serialized_end=13487 - _PORTMETRIC_CAPTURE._serialized_start=77819 - _PORTMETRIC_CAPTURE._serialized_end=77879 - _PORTMETRIC_CAPTURE_ENUM._serialized_start=77830 - _PORTMETRIC_CAPTURE_ENUM._serialized_end=77879 - _PORTMETRIC_TRANSMIT._serialized_start=77881 - _PORTMETRIC_TRANSMIT._serialized_end=77942 - _PORTMETRIC_TRANSMIT_ENUM._serialized_start=77830 - _PORTMETRIC_TRANSMIT_ENUM._serialized_end=77879 - _FLOWMETRICSREQUEST._serialized_start=78129 - _FLOWMETRICSREQUEST._serialized_end=78465 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=78295 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=78446 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=78311 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=78446 - _FLOWTAGGEDMETRICSFILTER._serialized_start=78468 - _FLOWTAGGEDMETRICSFILTER._serialized_end=78840 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=78666 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=78802 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=78681 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=78802 - _FLOWMETRICTAGFILTER._serialized_start=78842 - _FLOWMETRICTAGFILTER._serialized_end=78907 - _FLOWMETRIC._serialized_start=78910 - _FLOWMETRIC._serialized_end=79595 - _FLOWMETRIC_TRANSMIT._serialized_start=79348 - _FLOWMETRIC_TRANSMIT._serialized_end=79421 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=79360 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=79421 - _FLOWTAGGEDMETRIC._serialized_start=79598 - _FLOWTAGGEDMETRIC._serialized_end=80038 - _FLOWMETRICTAG._serialized_start=80040 - _FLOWMETRICTAG._serialized_end=80138 - _FLOWMETRICTAGVALUE._serialized_start=80141 - _FLOWMETRICTAGVALUE._serialized_end=80335 - _FLOWMETRICTAGVALUE_CHOICE._serialized_start=80257 - _FLOWMETRICTAGVALUE_CHOICE._serialized_end=80308 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=80267 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=80308 - _METRICTIMESTAMP._serialized_start=80337 - _METRICTIMESTAMP._serialized_end=80464 - _METRICLATENCY._serialized_start=80467 - _METRICLATENCY._serialized_end=80602 - _BGPV4METRICSREQUEST._serialized_start=80605 - _BGPV4METRICSREQUEST._serialized_end=81110 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=80714 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=81110 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 - _BGPV4METRIC._serialized_start=81113 - _BGPV4METRIC._serialized_end=82243 - _BGPV4METRIC_SESSIONSTATE._serialized_start=81716 - _BGPV4METRIC_SESSIONSTATE._serialized_end=81773 - _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=13446 - _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV4METRIC_FSMSTATE._serialized_start=81775 - _BGPV4METRIC_FSMSTATE._serialized_end=81893 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=81787 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=81893 - _BGPV6METRICSREQUEST._serialized_start=82246 - _BGPV6METRICSREQUEST._serialized_end=82751 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=80714 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=81110 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 - _BGPV6METRIC._serialized_start=82754 - _BGPV6METRIC._serialized_end=83884 - _BGPV6METRIC_SESSIONSTATE._serialized_start=81716 - _BGPV6METRIC_SESSIONSTATE._serialized_end=81773 - _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=13446 - _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV6METRIC_FSMSTATE._serialized_start=81775 - _BGPV6METRIC_FSMSTATE._serialized_end=81893 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=81787 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=81893 - _ISISMETRICSREQUEST._serialized_start=83887 - _ISISMETRICSREQUEST._serialized_end=84673 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=83996 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=84673 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=84012 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84673 - _ISISMETRIC._serialized_start=84676 - _ISISMETRIC._serialized_end=86200 - _LAGMETRICSREQUEST._serialized_start=86203 - _LAGMETRICSREQUEST._serialized_end=86520 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=86307 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=86520 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=86323 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=86520 - _LAGMETRIC._serialized_start=86523 - _LAGMETRIC._serialized_end=87079 - _LAGMETRIC_OPERSTATUS._serialized_start=86851 - _LAGMETRIC_OPERSTATUS._serialized_end=86906 - _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=13446 - _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=13487 - _LACPMETRICSREQUEST._serialized_start=87082 - _LACPMETRICSREQUEST._serialized_end=87518 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=87219 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=87518 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=87235 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=87518 - _LACPMETRIC._serialized_start=87521 - _LACPMETRIC._serialized_end=88558 - _LACPMETRIC_ACTIVITY._serialized_start=88087 - _LACPMETRIC_ACTIVITY._serialized_end=88147 - _LACPMETRIC_ACTIVITY_ENUM._serialized_start=88099 - _LACPMETRIC_ACTIVITY_ENUM._serialized_end=88147 - _LACPMETRIC_TIMEOUT._serialized_start=88149 - _LACPMETRIC_TIMEOUT._serialized_end=88204 - _LACPMETRIC_TIMEOUT_ENUM._serialized_start=88160 - _LACPMETRIC_TIMEOUT_ENUM._serialized_end=88204 - _LACPMETRIC_SYNCHRONIZATION._serialized_start=88206 - _LACPMETRIC_SYNCHRONIZATION._serialized_end=88275 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=88225 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=88275 - _LLDPMETRICSREQUEST._serialized_start=88561 - _LLDPMETRICSREQUEST._serialized_end=88814 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=88668 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=88814 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=88684 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=88814 - _LLDPMETRIC._serialized_start=88817 - _LLDPMETRIC._serialized_end=89119 - _RSVPMETRICSREQUEST._serialized_start=89122 - _RSVPMETRICSREQUEST._serialized_end=89828 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=89231 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=89828 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=89247 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=89828 - _RSVPMETRIC._serialized_start=89831 - _RSVPMETRIC._serialized_end=91227 - _STATESREQUEST._serialized_start=91230 - _STATESREQUEST._serialized_end=91894 - _STATESREQUEST_CHOICE._serialized_start=91639 - _STATESREQUEST_CHOICE._serialized_end=91781 - _STATESREQUEST_CHOICE_ENUM._serialized_start=91650 - _STATESREQUEST_CHOICE_ENUM._serialized_end=91781 - _STATESRESPONSE._serialized_start=91897 - _STATESRESPONSE._serialized_end=92389 - _STATESRESPONSE_CHOICE._serialized_start=91639 - _STATESRESPONSE_CHOICE._serialized_end=91781 - _STATESRESPONSE_CHOICE_ENUM._serialized_start=91650 - _STATESRESPONSE_CHOICE_ENUM._serialized_end=91781 - _NEIGHBORSV4STATESREQUEST._serialized_start=92391 - _NEIGHBORSV4STATESREQUEST._serialized_end=92441 - _NEIGHBORSV4STATE._serialized_start=92443 - _NEIGHBORSV4STATE._serialized_end=92562 - _NEIGHBORSV6STATESREQUEST._serialized_start=92564 - _NEIGHBORSV6STATESREQUEST._serialized_end=92614 - _NEIGHBORSV6STATE._serialized_start=92616 - _NEIGHBORSV6STATE._serialized_end=92735 - _BGPPREFIXSTATEREQUEST._serialized_start=92738 - _BGPPREFIXSTATEREQUEST._serialized_end=93060 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=92984 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=93060 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=93001 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=93060 - _BGPPREFIXIPV4UNICASTFILTER._serialized_start=93063 - _BGPPREFIXIPV4UNICASTFILTER._serialized_end=93336 - _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=18460 - _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=18527 - _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 - _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTFILTER._serialized_start=93339 - _BGPPREFIXIPV6UNICASTFILTER._serialized_end=93612 - _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=18460 - _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=18527 - _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 - _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXESSTATE._serialized_start=93615 - _BGPPREFIXESSTATE._serialized_end=93805 - _BGPPREFIXIPV4UNICASTSTATE._serialized_start=93808 - _BGPPREFIXIPV4UNICASTSTATE._serialized_end=94418 - _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=18460 - _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=18527 - _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 - _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTSTATE._serialized_start=94421 - _BGPPREFIXIPV6UNICASTSTATE._serialized_end=95031 - _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=18460 - _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=18527 - _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 - _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _RESULTBGPCOMMUNITY._serialized_start=95034 - _RESULTBGPCOMMUNITY._serialized_end=95338 - _RESULTBGPCOMMUNITY_TYPE._serialized_start=18789 - _RESULTBGPCOMMUNITY_TYPE._serialized_end=18931 - _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18798 - _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18931 - _RESULTBGPASPATH._serialized_start=95340 - _RESULTBGPASPATH._serialized_end=95404 - _RESULTBGPASPATHSEGMENT._serialized_start=95407 - _RESULTBGPASPATHSEGMENT._serialized_end=95613 - _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19892 - _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=19985 - _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19900 - _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19985 - _ISISLSPSSTATEREQUEST._serialized_start=95615 - _ISISLSPSSTATEREQUEST._serialized_end=95664 - _ISISLSPSSTATE._serialized_start=95666 - _ISISLSPSSTATE._serialized_end=95766 - _ISISLSPSTATE._serialized_start=95769 - _ISISLSPSTATE._serialized_end=96204 - _ISISLSPSTATE_PDUTYPE._serialized_start=96042 - _ISISLSPSTATE_PDUTYPE._serialized_end=96102 - _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9909 - _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9958 - _ISISLSPTLVS._serialized_start=96207 - _ISISLSPTLVS._serialized_end=96715 - _ISISLSPHOSTNAME._serialized_start=96717 - _ISISLSPHOSTNAME._serialized_end=96770 - _ISISLSPFLAGS._serialized_start=96773 - _ISISLSPFLAGS._serialized_end=97075 - _ISISLSPISREACHABILITYTLV._serialized_start=97077 - _ISISLSPISREACHABILITYTLV._serialized_end=97144 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=97146 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=97221 - _ISISLSPNEIGHBOR._serialized_start=97223 - _ISISLSPNEIGHBOR._serialized_end=97278 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=97280 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=97356 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=97358 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=97434 - _ISISLSPV4PREFIX._serialized_start=97437 - _ISISLSPV4PREFIX._serialized_end=97908 - _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 - _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 - _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 - _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _ISISLSPV4PREFIX_ORIGINTYPE._serialized_start=13357 - _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=13422 - _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 - _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=97910 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=97994 - _ISISLSPEXTENDEDV4PREFIX._serialized_start=97997 - _ISISLSPEXTENDEDV4PREFIX._serialized_end=98405 - _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 - _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 - _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 - _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _ISISLSPIPV6REACHABILITYTLV._serialized_start=98407 - _ISISLSPIPV6REACHABILITYTLV._serialized_end=98475 - _ISISLSPV6PREFIX._serialized_start=98478 - _ISISLSPV6PREFIX._serialized_end=99017 - _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 - _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 - _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 - _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _ISISLSPV6PREFIX_ORIGINTYPE._serialized_start=13357 - _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=13422 - _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 - _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPPREFIXATTRIBUTES._serialized_start=99019 - _ISISLSPPREFIXATTRIBUTES._serialized_end=99140 - _LLDPNEIGHBORSSTATEREQUEST._serialized_start=99142 - _LLDPNEIGHBORSSTATEREQUEST._serialized_end=99218 - _LLDPNEIGHBORSSTATE._serialized_start=99221 - _LLDPNEIGHBORSSTATE._serialized_end=100384 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=99800 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=99974 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=99818 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=99974 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=99977 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=100147 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=99992 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=100147 - _LLDPCUSTOMTLVSTATE._serialized_start=100387 - _LLDPCUSTOMTLVSTATE._serialized_end=100517 - _LLDPCAPABILITYSTATE._serialized_start=100520 - _LLDPCAPABILITYSTATE._serialized_end=100920 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=100653 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=100877 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=100672 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=100877 - _RSVPLSPSSTATEREQUEST._serialized_start=100922 - _RSVPLSPSSTATEREQUEST._serialized_end=100971 - _RSVPLSPSSTATE._serialized_start=100973 - _RSVPLSPSSTATE._serialized_end=101082 - _RSVPIPV4LSPSTATE._serialized_start=101085 - _RSVPIPV4LSPSTATE._serialized_end=101324 - _RSVPLSPSTATE._serialized_start=101327 - _RSVPLSPSTATE._serialized_end=101891 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=101621 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=101679 - _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=13446 - _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=13487 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=101681 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=101770 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=101699 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=101770 - _RSVPLSPIPV4RRO._serialized_start=101893 - _RSVPLSPIPV4RRO._serialized_end=101991 - _RSVPLSPIPV4ERO._serialized_start=101994 - _RSVPLSPIPV4ERO._serialized_end=102236 - _RSVPLSPIPV4ERO_TYPE._serialized_start=102101 - _RSVPLSPIPV4ERO_TYPE._serialized_end=102208 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=102109 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=102208 - _CAPTUREREQUEST._serialized_start=102238 - _CAPTUREREQUEST._serialized_end=102273 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=102275 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=102394 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=102396 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=102507 - _PATTERNFLOWETHERNETDST._serialized_start=102510 - _PATTERNFLOWETHERNETDST._serialized_end=102986 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=102832 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=102928 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=102988 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=103107 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=103109 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=103220 - _PATTERNFLOWETHERNETSRC._serialized_start=103223 - _PATTERNFLOWETHERNETSRC._serialized_end=103661 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=103663 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=103788 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=103790 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=103907 - _PATTERNFLOWETHERNETETHERTYPE._serialized_start=103910 - _PATTERNFLOWETHERNETETHERTYPE._serialized_end=104416 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=102832 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=102928 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=104418 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=104542 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=104544 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=104660 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=104663 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=105126 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=105128 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=105248 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=105250 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=105362 - _PATTERNFLOWVLANPRIORITY._serialized_start=105365 - _PATTERNFLOWVLANPRIORITY._serialized_end=105808 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=103526 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=103612 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVLANCFICOUNTER._serialized_start=105810 - _PATTERNFLOWVLANCFICOUNTER._serialized_end=105925 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=105927 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=106034 - _PATTERNFLOWVLANCFI._serialized_start=106037 - _PATTERNFLOWVLANCFI._serialized_end=106455 - _PATTERNFLOWVLANCFI_CHOICE._serialized_start=103526 - _PATTERNFLOWVLANCFI_CHOICE._serialized_end=103612 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVLANIDCOUNTER._serialized_start=106457 - _PATTERNFLOWVLANIDCOUNTER._serialized_end=106571 - _PATTERNFLOWVLANIDMETRICTAG._serialized_start=106573 - _PATTERNFLOWVLANIDMETRICTAG._serialized_end=106679 - _PATTERNFLOWVLANID._serialized_start=106682 - _PATTERNFLOWVLANID._serialized_end=107095 - _PATTERNFLOWVLANID_CHOICE._serialized_start=103526 - _PATTERNFLOWVLANID_CHOICE._serialized_end=103612 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=107097 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=107213 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=107215 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=107323 - _PATTERNFLOWVLANTPID._serialized_start=107326 - _PATTERNFLOWVLANTPID._serialized_end=107749 - _PATTERNFLOWVLANTPID_CHOICE._serialized_start=103526 - _PATTERNFLOWVLANTPID_CHOICE._serialized_end=103612 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=107751 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=107869 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=107871 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=107981 - _PATTERNFLOWVXLANFLAGS._serialized_start=107984 - _PATTERNFLOWVXLANFLAGS._serialized_end=108417 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=103526 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=103612 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=108419 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=108541 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=108543 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=108657 - _PATTERNFLOWVXLANRESERVED0._serialized_start=108660 - _PATTERNFLOWVXLANRESERVED0._serialized_end=109113 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=103526 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=103612 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWVXLANVNICOUNTER._serialized_start=109115 - _PATTERNFLOWVXLANVNICOUNTER._serialized_end=109231 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=109233 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=109341 - _PATTERNFLOWVXLANVNI._serialized_start=109344 - _PATTERNFLOWVXLANVNI._serialized_end=109805 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=102832 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=102928 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=109807 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=109929 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=109931 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=110045 - _PATTERNFLOWVXLANRESERVED1._serialized_start=110048 - _PATTERNFLOWVXLANRESERVED1._serialized_end=110501 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=103526 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=103612 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=110503 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=110622 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=110624 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=110735 - _PATTERNFLOWIPV4VERSION._serialized_start=110738 - _PATTERNFLOWIPV4VERSION._serialized_end=111176 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=111178 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=111302 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=111304 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=111420 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=111423 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=111924 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=102832 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=102928 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=111926 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=112049 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=112051 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=112166 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=112169 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=112665 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=102832 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=102928 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=112667 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=112793 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=112795 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=112913 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=112916 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=113389 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=113391 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=113511 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=113513 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=113625 - _PATTERNFLOWIPV4RESERVED._serialized_start=113628 - _PATTERNFLOWIPV4RESERVED._serialized_end=114071 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=114073 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=114197 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=114199 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=114315 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=114318 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=114781 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=114783 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=114908 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=114910 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=115027 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=115030 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=115498 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=115500 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=115626 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=115628 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=115746 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=115749 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=116222 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=116224 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=116346 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=116348 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=116462 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=116465 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=116918 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=116920 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=117040 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=117042 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=117154 - _PATTERNFLOWIPV4PROTOCOL._serialized_start=117157 - _PATTERNFLOWIPV4PROTOCOL._serialized_end=117638 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=102832 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=102928 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=117641 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=117992 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=117994 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=118109 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=118111 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=118218 - _PATTERNFLOWIPV4SRC._serialized_start=118221 - _PATTERNFLOWIPV4SRC._serialized_end=118639 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=118641 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=118756 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=118758 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=118865 - _PATTERNFLOWIPV4DST._serialized_start=118868 - _PATTERNFLOWIPV4DST._serialized_end=119286 - _PATTERNFLOWIPV4DST_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4DST_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=119288 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=119411 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=119413 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=119528 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=119531 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=119989 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=119991 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=120110 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=120112 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=120223 - _PATTERNFLOWIPV4DSCPPHB._serialized_start=120226 - _PATTERNFLOWIPV4DSCPPHB._serialized_end=120664 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=120666 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=120785 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=120787 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=120898 - _PATTERNFLOWIPV4DSCPECN._serialized_start=120901 - _PATTERNFLOWIPV4DSCPECN._serialized_end=121339 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=121341 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=121466 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=121468 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=121585 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=121588 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=122056 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=122058 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=122178 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=122180 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=122292 - _PATTERNFLOWIPV4TOSDELAY._serialized_start=122295 - _PATTERNFLOWIPV4TOSDELAY._serialized_end=122738 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=122740 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=122865 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=122867 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=122984 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=122987 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=123455 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=123457 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=123583 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=123585 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=123703 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=123706 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=124179 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=124181 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=124304 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=124306 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=124421 - _PATTERNFLOWIPV4TOSMONETARY._serialized_start=124424 - _PATTERNFLOWIPV4TOSMONETARY._serialized_end=124882 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=124884 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=125005 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=125007 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=125120 - _PATTERNFLOWIPV4TOSUNUSED._serialized_start=125123 - _PATTERNFLOWIPV4TOSUNUSED._serialized_end=125571 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=125573 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=125692 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=125694 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=125805 - _PATTERNFLOWIPV6VERSION._serialized_start=125808 - _PATTERNFLOWIPV6VERSION._serialized_end=126246 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=126248 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=126372 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=126374 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=126490 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=126493 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=126956 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=126958 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=127079 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=127081 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=127194 - _PATTERNFLOWIPV6FLOWLABEL._serialized_start=127197 - _PATTERNFLOWIPV6FLOWLABEL._serialized_end=127645 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=127647 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=127772 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=127774 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=127891 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=127894 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=128400 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=102832 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=102928 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=128402 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=128524 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=128526 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=128640 - _PATTERNFLOWIPV6NEXTHEADER._serialized_start=128643 - _PATTERNFLOWIPV6NEXTHEADER._serialized_end=129134 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=102832 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=102928 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=129136 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=129256 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=129258 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=129370 - _PATTERNFLOWIPV6HOPLIMIT._serialized_start=129373 - _PATTERNFLOWIPV6HOPLIMIT._serialized_end=129816 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=129818 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=129933 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=129935 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=130042 - _PATTERNFLOWIPV6SRC._serialized_start=130045 - _PATTERNFLOWIPV6SRC._serialized_end=130463 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=130465 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=130580 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=130582 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=130689 - _PATTERNFLOWIPV6DST._serialized_start=130692 - _PATTERNFLOWIPV6DST._serialized_end=131110 - _PATTERNFLOWIPV6DST_CHOICE._serialized_start=103526 - _PATTERNFLOWIPV6DST_CHOICE._serialized_end=103612 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=131112 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=131231 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=131233 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=131344 - _PATTERNFLOWPFCPAUSEDST._serialized_start=131347 - _PATTERNFLOWPFCPAUSEDST._serialized_end=131785 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=131787 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=131906 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=131908 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=132019 - _PATTERNFLOWPFCPAUSESRC._serialized_start=132022 - _PATTERNFLOWPFCPAUSESRC._serialized_end=132460 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=132462 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=132587 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=132589 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=132706 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=132709 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=133177 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=133180 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=133309 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=133311 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=133432 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=133435 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=133923 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=133926 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=134059 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=134061 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=134186 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=134189 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=134697 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=134699 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=134826 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=134828 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=134947 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=134950 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=135428 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=135430 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=135557 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=135559 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=135678 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=135681 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=136159 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=136161 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=136288 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=136290 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=136409 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=136412 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=136890 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=136892 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=137019 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=137021 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=137140 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=137143 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=137621 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=137623 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=137750 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=137752 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=137871 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=137874 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=138352 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=138354 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=138481 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=138483 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=138602 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=138605 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=139083 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=139085 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=139212 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=139214 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=139333 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=139336 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=139814 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=139816 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=139943 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=139945 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=140064 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=140067 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=140545 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=103526 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=103612 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=140547 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=140671 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=140673 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=140789 - _PATTERNFLOWETHERNETPAUSEDST._serialized_start=140792 - _PATTERNFLOWETHERNETPAUSEDST._serialized_end=141255 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=141257 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=141381 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=141383 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=141499 - _PATTERNFLOWETHERNETPAUSESRC._serialized_start=141502 - _PATTERNFLOWETHERNETPAUSESRC._serialized_end=141965 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=141968 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=142098 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=142100 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=142222 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=142225 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=142718 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=142721 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=142855 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=142857 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=142983 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=142986 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=143499 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=143501 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=143626 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=143628 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=143745 - _PATTERNFLOWETHERNETPAUSETIME._serialized_start=143748 - _PATTERNFLOWETHERNETPAUSETIME._serialized_end=144216 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=103526 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=103612 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=144218 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=144336 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=144338 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=144448 - _PATTERNFLOWTCPSRCPORT._serialized_start=144451 - _PATTERNFLOWTCPSRCPORT._serialized_end=144884 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=144886 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=145004 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=145006 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=145116 - _PATTERNFLOWTCPDSTPORT._serialized_start=145119 - _PATTERNFLOWTCPDSTPORT._serialized_end=145552 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=145554 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=145671 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=145673 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=145782 - _PATTERNFLOWTCPSEQNUM._serialized_start=145785 - _PATTERNFLOWTCPSEQNUM._serialized_end=146213 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=146215 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=146332 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=146334 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=146443 - _PATTERNFLOWTCPACKNUM._serialized_start=146446 - _PATTERNFLOWTCPACKNUM._serialized_end=146874 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=146876 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=146997 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=146999 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=147112 - _PATTERNFLOWTCPDATAOFFSET._serialized_start=147115 - _PATTERNFLOWTCPDATAOFFSET._serialized_end=147563 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=147565 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=147681 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=147683 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=147791 - _PATTERNFLOWTCPECNNS._serialized_start=147794 - _PATTERNFLOWTCPECNNS._serialized_end=148217 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=148219 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=148336 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=148338 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=148447 - _PATTERNFLOWTCPECNCWR._serialized_start=148450 - _PATTERNFLOWTCPECNCWR._serialized_end=148878 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=148880 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=148998 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=149000 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=149110 - _PATTERNFLOWTCPECNECHO._serialized_start=149113 - _PATTERNFLOWTCPECNECHO._serialized_end=149546 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=149548 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=149665 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=149667 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=149776 - _PATTERNFLOWTCPCTLURG._serialized_start=149779 - _PATTERNFLOWTCPCTLURG._serialized_end=150207 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=150209 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=150326 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=150328 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=150437 - _PATTERNFLOWTCPCTLACK._serialized_start=150440 - _PATTERNFLOWTCPCTLACK._serialized_end=150868 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=150870 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=150987 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=150989 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=151098 - _PATTERNFLOWTCPCTLPSH._serialized_start=151101 - _PATTERNFLOWTCPCTLPSH._serialized_end=151529 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=151531 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=151648 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=151650 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=151759 - _PATTERNFLOWTCPCTLRST._serialized_start=151762 - _PATTERNFLOWTCPCTLRST._serialized_end=152190 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=152192 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=152309 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=152311 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=152420 - _PATTERNFLOWTCPCTLSYN._serialized_start=152423 - _PATTERNFLOWTCPCTLSYN._serialized_end=152851 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=152853 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=152970 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=152972 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=153081 - _PATTERNFLOWTCPCTLFIN._serialized_start=153084 - _PATTERNFLOWTCPCTLFIN._serialized_end=153512 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=153514 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=153631 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=153633 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=153742 - _PATTERNFLOWTCPWINDOW._serialized_start=153745 - _PATTERNFLOWTCPWINDOW._serialized_end=154173 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=103526 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=103612 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=154175 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=154293 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=154295 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=154405 - _PATTERNFLOWUDPSRCPORT._serialized_start=154408 - _PATTERNFLOWUDPSRCPORT._serialized_end=154841 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=103526 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=103612 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=154843 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=154961 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=154963 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=155073 - _PATTERNFLOWUDPDSTPORT._serialized_start=155076 - _PATTERNFLOWUDPDSTPORT._serialized_end=155509 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=103526 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=103612 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=155511 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=155628 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=155630 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=155739 - _PATTERNFLOWUDPLENGTH._serialized_start=155742 - _PATTERNFLOWUDPLENGTH._serialized_end=156170 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWUDPCHECKSUM._serialized_start=156173 - _PATTERNFLOWUDPCHECKSUM._serialized_end=156503 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=156505 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=156631 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=156633 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=156751 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=156754 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=157227 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=103526 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=103612 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=157229 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=157349 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=157351 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=157463 - _PATTERNFLOWGRERESERVED0._serialized_start=157466 - _PATTERNFLOWGRERESERVED0._serialized_end=157909 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=103526 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=103612 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=157911 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=158029 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=158031 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=158141 - _PATTERNFLOWGREVERSION._serialized_start=158144 - _PATTERNFLOWGREVERSION._serialized_end=158577 - _PATTERNFLOWGREVERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWGREVERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=158579 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=158698 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=158700 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=158811 - _PATTERNFLOWGREPROTOCOL._serialized_start=158814 - _PATTERNFLOWGREPROTOCOL._serialized_end=159252 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=103526 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=103612 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGRECHECKSUM._serialized_start=159255 - _PATTERNFLOWGRECHECKSUM._serialized_end=159585 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=159587 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=159707 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=159709 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=159821 - _PATTERNFLOWGRERESERVED1._serialized_start=159824 - _PATTERNFLOWGRERESERVED1._serialized_end=160267 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=103526 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=103612 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=160269 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=160389 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=160391 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=160503 - _PATTERNFLOWGTPV1VERSION._serialized_start=160506 - _PATTERNFLOWGTPV1VERSION._serialized_end=160949 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=160951 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=161076 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=161078 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=161195 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=161198 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=161666 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=161668 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=161789 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=161791 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=161904 - _PATTERNFLOWGTPV1RESERVED._serialized_start=161907 - _PATTERNFLOWGTPV1RESERVED._serialized_end=162355 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=162357 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=162475 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=162477 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=162587 - _PATTERNFLOWGTPV1EFLAG._serialized_start=162590 - _PATTERNFLOWGTPV1EFLAG._serialized_end=163023 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=163025 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=163143 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=163145 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=163255 - _PATTERNFLOWGTPV1SFLAG._serialized_start=163258 - _PATTERNFLOWGTPV1SFLAG._serialized_end=163691 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=163693 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=163812 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=163814 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=163925 - _PATTERNFLOWGTPV1PNFLAG._serialized_start=163928 - _PATTERNFLOWGTPV1PNFLAG._serialized_end=164366 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=164368 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=164492 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=164494 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=164610 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=164613 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=165076 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=165078 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=165204 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=165206 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=165324 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=165327 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=165800 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=165802 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=165919 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=165921 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=166030 - _PATTERNFLOWGTPV1TEID._serialized_start=166033 - _PATTERNFLOWGTPV1TEID._serialized_end=166461 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=166463 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=166589 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=166591 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=166709 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=166712 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=167185 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=167187 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=167310 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=167312 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=167427 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=167430 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=167888 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=167891 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=168027 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=168030 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=168158 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=168161 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=168684 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=168687 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=168822 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=168824 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=168951 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=168954 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=169472 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=169475 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=169603 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=169605 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=169725 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=169728 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=170211 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=170214 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=170353 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=170356 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=170487 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=170490 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=171028 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=171030 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=171150 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=171152 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=171264 - _PATTERNFLOWGTPV2VERSION._serialized_start=171267 - _PATTERNFLOWGTPV2VERSION._serialized_end=171710 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=171713 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=171842 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=171844 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=171965 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=171968 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=172456 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=172458 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=172579 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=172581 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=172694 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=172697 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=173145 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=173147 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=173266 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=173268 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=173379 - _PATTERNFLOWGTPV2SPARE1._serialized_start=173382 - _PATTERNFLOWGTPV2SPARE1._serialized_end=173820 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=173822 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=173946 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=173948 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=174064 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=174067 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=174530 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=174532 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=174658 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=174660 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=174778 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=174781 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=175254 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=175256 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=175373 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=175375 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=175484 - _PATTERNFLOWGTPV2TEID._serialized_start=175487 - _PATTERNFLOWGTPV2TEID._serialized_end=175915 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=175917 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=176044 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=176046 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=176165 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=176168 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=176646 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=176648 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=176767 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=176769 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=176880 - _PATTERNFLOWGTPV2SPARE2._serialized_start=176883 - _PATTERNFLOWGTPV2SPARE2._serialized_end=177321 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=103526 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=103612 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=177323 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=177446 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=177448 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=177563 - _PATTERNFLOWARPHARDWARETYPE._serialized_start=177566 - _PATTERNFLOWARPHARDWARETYPE._serialized_end=178024 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=178026 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=178149 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=178151 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=178266 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=178269 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=178727 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=178729 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=178854 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=178856 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=178973 - _PATTERNFLOWARPHARDWARELENGTH._serialized_start=178976 - _PATTERNFLOWARPHARDWARELENGTH._serialized_end=179444 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=179446 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=179571 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=179573 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=179690 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=179693 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=180161 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=103526 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=103612 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=180163 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=180283 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=180285 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=180397 - _PATTERNFLOWARPOPERATION._serialized_start=180400 - _PATTERNFLOWARPOPERATION._serialized_end=180843 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=103526 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=103612 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=180846 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=180975 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=180977 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=181098 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=181101 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=181589 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=103526 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=103612 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=181592 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=181721 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=181723 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=181844 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=181847 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=182335 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=103526 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=103612 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=182338 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=182467 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=182469 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=182590 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=182593 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=183081 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=103526 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=103612 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=183084 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=183213 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=183215 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=183336 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=183339 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=183827 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=103526 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=103612 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=183829 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=183949 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=183951 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=184063 - _PATTERNFLOWICMPECHOTYPE._serialized_start=184066 - _PATTERNFLOWICMPECHOTYPE._serialized_end=184509 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=184511 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=184631 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=184633 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=184745 - _PATTERNFLOWICMPECHOCODE._serialized_start=184748 - _PATTERNFLOWICMPECHOCODE._serialized_end=185191 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=185194 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=185539 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=185541 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=185667 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=185669 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=185787 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=185790 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=186263 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=186266 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=186396 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=186398 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=186520 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=186523 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=187016 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=187019 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=187370 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=187373 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=187505 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=187507 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=187631 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=187634 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=188137 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=188140 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=188276 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=188279 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=188407 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=188410 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=188933 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=188935 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=189057 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=189059 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=189173 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=189176 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=189629 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=189631 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=189753 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=189755 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=189869 - _PATTERNFLOWICMPV6ECHOCODE._serialized_start=189872 - _PATTERNFLOWICMPV6ECHOCODE._serialized_end=190325 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=190328 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=190456 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=190458 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=190578 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=190581 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=191064 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=191067 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=191199 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=191201 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=191325 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=191328 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=191831 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=191834 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=192185 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=192188 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=192545 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=192547 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=192665 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=192667 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=192777 - _PATTERNFLOWPPPADDRESS._serialized_start=192780 - _PATTERNFLOWPPPADDRESS._serialized_end=193213 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=103526 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=103612 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=193215 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=193333 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=193335 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=193445 - _PATTERNFLOWPPPCONTROL._serialized_start=193448 - _PATTERNFLOWPPPCONTROL._serialized_end=193881 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=103526 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=103612 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=193883 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=194006 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=194008 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=194123 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=194126 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=194622 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=102832 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=102928 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=194624 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=194745 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=194747 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=194860 - _PATTERNFLOWIGMPV1VERSION._serialized_start=194863 - _PATTERNFLOWIGMPV1VERSION._serialized_end=195311 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=103526 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=103612 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=195313 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=195431 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=195433 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=195543 - _PATTERNFLOWIGMPV1TYPE._serialized_start=195546 - _PATTERNFLOWIGMPV1TYPE._serialized_end=195979 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=103526 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=103612 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=195981 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=196101 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=196103 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=196215 - _PATTERNFLOWIGMPV1UNUSED._serialized_start=196218 - _PATTERNFLOWIGMPV1UNUSED._serialized_end=196661 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=103526 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=103612 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=196664 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=197003 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=117839 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=117899 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=117849 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=117899 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=117901 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=117956 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=117914 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=117956 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=197005 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=197131 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=197133 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=197251 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=197254 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=197727 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=103526 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=103612 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=197729 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=197846 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=197848 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=197957 - _PATTERNFLOWMPLSLABEL._serialized_start=197960 - _PATTERNFLOWMPLSLABEL._serialized_end=198426 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=102832 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=102928 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=198428 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=198552 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=198554 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=198670 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=198673 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=199136 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=103526 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=103612 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=199138 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=199263 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=199265 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=199382 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=199385 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=199891 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=102832 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=102928 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=102842 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=102928 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=199893 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=200015 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=200017 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=200131 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=200134 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=200587 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=103526 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=103612 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=103536 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=103612 - _VERSION._serialized_start=200590 - _VERSION._serialized_end=200735 - _SUCCESS._serialized_start=200737 - _SUCCESS._serialized_end=200777 - _FAILURE._serialized_start=200779 - _FAILURE._serialized_end=200815 - _SETCONFIGREQUEST._serialized_start=200817 - _SETCONFIGREQUEST._serialized_end=200864 - _UPDATECONFIGREQUEST._serialized_start=200866 - _UPDATECONFIGREQUEST._serialized_end=200929 - _SETCONFIGRESPONSE._serialized_start=200931 - _SETCONFIGRESPONSE._serialized_end=200981 - _GETCONFIGRESPONSE._serialized_start=200983 - _GETCONFIGRESPONSE._serialized_end=201031 - _UPDATECONFIGRESPONSE._serialized_start=201033 - _UPDATECONFIGRESPONSE._serialized_end=201086 - _SETCONTROLSTATEREQUEST._serialized_start=201088 - _SETCONTROLSTATEREQUEST._serialized_end=201154 - _SETCONTROLSTATERESPONSE._serialized_start=201156 - _SETCONTROLSTATERESPONSE._serialized_end=201212 - _SETCONTROLACTIONREQUEST._serialized_start=201214 - _SETCONTROLACTIONREQUEST._serialized_end=201283 - _SETCONTROLACTIONRESPONSE._serialized_start=201285 - _SETCONTROLACTIONRESPONSE._serialized_end=201372 - _GETMETRICSREQUEST._serialized_start=201374 - _GETMETRICSREQUEST._serialized_end=201439 - _GETMETRICSRESPONSE._serialized_start=201441 - _GETMETRICSRESPONSE._serialized_end=201509 - _GETSTATESREQUEST._serialized_start=201511 - _GETSTATESREQUEST._serialized_end=201573 - _GETSTATESRESPONSE._serialized_start=201575 - _GETSTATESRESPONSE._serialized_end=201640 - _GETCAPTUREREQUEST._serialized_start=201642 - _GETCAPTUREREQUEST._serialized_end=201707 - _GETCAPTURERESPONSE._serialized_start=201709 - _GETCAPTURERESPONSE._serialized_end=201753 - _GETVERSIONRESPONSE._serialized_start=201755 - _GETVERSIONRESPONSE._serialized_end=201806 - _OPENAPI._serialized_start=201809 - _OPENAPI._serialized_end=202416 + _CONFIG._serialized_end=347 + _CONFIGOPTIONS._serialized_start=349 + _CONFIGOPTIONS._serialized_end=452 + _PORT._serialized_start=454 + _PORT._serialized_end=524 + _PORTOPTIONS._serialized_start=526 + _PORTOPTIONS._serialized_end=597 + _LAG._serialized_start=600 + _LAG._serialized_end=736 + _LAGPORT._serialized_start=738 + _LAGPORT._serialized_end=860 + _LAGPROTOCOL._serialized_start=863 + _LAGPROTOCOL._serialized_end=1071 + _LAGPROTOCOL_CHOICE._serialized_start=1005 + _LAGPROTOCOL_CHOICE._serialized_end=1060 + _LAGPROTOCOL_CHOICE_ENUM._serialized_start=1015 + _LAGPROTOCOL_CHOICE_ENUM._serialized_end=1060 + _LAGPROTOCOLSTATIC._serialized_start=1073 + _LAGPROTOCOLSTATIC._serialized_end=1124 + _LAGPROTOCOLLACP._serialized_start=1127 + _LAGPROTOCOLLACP._serialized_end=1294 + _LAGPORTLACP._serialized_start=1297 + _LAGPORTLACP._serialized_end=1700 + _LAGPORTLACP_ACTORACTIVITY._serialized_start=1517 + _LAGPORTLACP_ACTORACTIVITY._serialized_end=1582 + _LAGPORTLACP_ACTORACTIVITY_ENUM._serialized_start=1534 + _LAGPORTLACP_ACTORACTIVITY_ENUM._serialized_end=1582 + _DEVICEETHERNETBASE._serialized_start=1703 + _DEVICEETHERNETBASE._serialized_end=1835 + _DEVICEETHERNET._serialized_start=1838 + _DEVICEETHERNET._serialized_end=2093 + _ETHERNETCONNECTION._serialized_start=2096 + _ETHERNETCONNECTION._serialized_end=2379 + _ETHERNETCONNECTION_CHOICE._serialized_start=2248 + _ETHERNETCONNECTION_CHOICE._serialized_end=2326 + _ETHERNETCONNECTION_CHOICE_ENUM._serialized_start=2258 + _ETHERNETCONNECTION_CHOICE_ENUM._serialized_end=2326 + _DEVICEVLAN._serialized_start=2382 + _DEVICEVLAN._serialized_end=2625 + _DEVICEVLAN_TPID._serialized_start=2501 + _DEVICEVLAN_TPID._serialized_end=2587 + _DEVICEVLAN_TPID_ENUM._serialized_start=2509 + _DEVICEVLAN_TPID_ENUM._serialized_end=2587 + _DEVICEIPV4._serialized_start=2628 + _DEVICEIPV4._serialized_end=2816 + _DEVICEIPV4LOOPBACK._serialized_start=2818 + _DEVICEIPV4LOOPBACK._serialized_end=2936 + _DEVICEIPV4GATEWAYMAC._serialized_start=2939 + _DEVICEIPV4GATEWAYMAC._serialized_end=3146 + _DEVICEIPV4GATEWAYMAC_CHOICE._serialized_start=3062 + _DEVICEIPV4GATEWAYMAC_CHOICE._serialized_end=3116 + _DEVICEIPV4GATEWAYMAC_CHOICE_ENUM._serialized_start=3072 + _DEVICEIPV4GATEWAYMAC_CHOICE_ENUM._serialized_end=3116 + _DEVICEIPV6._serialized_start=3149 + _DEVICEIPV6._serialized_end=3337 + _DEVICEIPV6LOOPBACK._serialized_start=3339 + _DEVICEIPV6LOOPBACK._serialized_end=3457 + _DEVICEIPV6GATEWAYMAC._serialized_start=3460 + _DEVICEIPV6GATEWAYMAC._serialized_end=3667 + _DEVICEIPV6GATEWAYMAC_CHOICE._serialized_start=3062 + _DEVICEIPV6GATEWAYMAC_CHOICE._serialized_end=3116 + _DEVICEIPV6GATEWAYMAC_CHOICE_ENUM._serialized_start=3072 + _DEVICEIPV6GATEWAYMAC_CHOICE_ENUM._serialized_end=3116 + _LAYER1._serialized_start=3670 + _LAYER1._serialized_end=4456 + _LAYER1_SPEED._serialized_start=4015 + _LAYER1_SPEED._serialized_end=4292 + _LAYER1_SPEED_ENUM._serialized_start=4025 + _LAYER1_SPEED_ENUM._serialized_end=4292 + _LAYER1_MEDIA._serialized_start=4294 + _LAYER1_MEDIA._serialized_end=4360 + _LAYER1_MEDIA_ENUM._serialized_start=4303 + _LAYER1_MEDIA_ENUM._serialized_end=4360 + _LAYER1AUTONEGOTIATION._serialized_start=4459 + _LAYER1AUTONEGOTIATION._serialized_end=4862 + _LAYER1FLOWCONTROL._serialized_start=4865 + _LAYER1FLOWCONTROL._serialized_end=5165 + _LAYER1FLOWCONTROL_CHOICE._serialized_start=5064 + _LAYER1FLOWCONTROL_CHOICE._serialized_end=5133 + _LAYER1FLOWCONTROL_CHOICE_ENUM._serialized_start=5074 + _LAYER1FLOWCONTROL_CHOICE_ENUM._serialized_end=5133 + _LAYER1IEEE8023X._serialized_start=5167 + _LAYER1IEEE8023X._serialized_end=5184 + _LAYER1IEEE8021QBB._serialized_start=5187 + _LAYER1IEEE8021QBB._serialized_end=5580 + _CAPTURE._serialized_start=5583 + _CAPTURE._serialized_end=5872 + _CAPTURE_FORMAT._serialized_start=5767 + _CAPTURE_FORMAT._serialized_end=5822 + _CAPTURE_FORMAT_ENUM._serialized_start=5777 + _CAPTURE_FORMAT_ENUM._serialized_end=5822 + _CAPTUREFILTER._serialized_start=5875 + _CAPTUREFILTER._serialized_end=6217 + _CAPTUREFILTER_CHOICE._serialized_start=6117 + _CAPTUREFILTER_CHOICE._serialized_end=6206 + _CAPTUREFILTER_CHOICE_ENUM._serialized_start=6127 + _CAPTUREFILTER_CHOICE_ENUM._serialized_end=6206 + _CAPTURECUSTOM._serialized_start=6220 + _CAPTURECUSTOM._serialized_end=6397 + _CAPTUREFIELD._serialized_start=6399 + _CAPTUREFIELD._serialized_end=6503 + _CAPTUREETHERNET._serialized_start=6506 + _CAPTUREETHERNET._serialized_end=6664 + _CAPTUREVLAN._serialized_start=6667 + _CAPTUREVLAN._serialized_end=6817 + _CAPTUREIPV4._serialized_start=6820 + _CAPTUREIPV4._serialized_end=7384 + _CAPTUREIPV6._serialized_start=7387 + _CAPTUREIPV6._serialized_end=7702 + _DEVICE._serialized_start=7705 + _DEVICE._serialized_end=8015 + _PROTOCOLOPTIONS._serialized_start=8017 + _PROTOCOLOPTIONS._serialized_end=8082 + _DEVICEISISROUTER._serialized_start=8085 + _DEVICEISISROUTER._serialized_end=8455 + _DEVICEISISMULTIINSTANCE._serialized_start=8457 + _DEVICEISISMULTIINSTANCE._serialized_end=8523 + _ISISINTERFACE._serialized_start=8526 + _ISISINTERFACE._serialized_end=9311 + _ISISINTERFACE_NETWORKTYPE._serialized_start=9094 + _ISISINTERFACE_NETWORKTYPE._serialized_end=9167 + _ISISINTERFACE_NETWORKTYPE_ENUM._serialized_start=9109 + _ISISINTERFACE_NETWORKTYPE_ENUM._serialized_end=9167 + _ISISINTERFACE_LEVELTYPE._serialized_start=9169 + _ISISINTERFACE_LEVELTYPE._serialized_end=9246 + _ISISINTERFACE_LEVELTYPE_ENUM._serialized_start=9182 + _ISISINTERFACE_LEVELTYPE_ENUM._serialized_end=9246 + _ISISINTERFACELEVEL._serialized_start=9314 + _ISISINTERFACELEVEL._serialized_end=9464 + _ISISMT._serialized_start=9466 + _ISISMT._serialized_end=9546 + _LINKSTATETE._serialized_start=9549 + _LINKSTATETE._serialized_end=9841 + _LINKSTATEPRIORITYBANDWIDTHS._serialized_start=9844 + _LINKSTATEPRIORITYBANDWIDTHS._serialized_end=10081 + _ISISINTERFACEAUTHENTICATION._serialized_start=10084 + _ISISINTERFACEAUTHENTICATION._serialized_end=10321 + _ISISINTERFACEAUTHENTICATION_AUTHTYPE._serialized_start=10228 + _ISISINTERFACEAUTHENTICATION_AUTHTYPE._serialized_end=10286 + _ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM._serialized_start=10240 + _ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM._serialized_end=10286 + _ISISINTERFACEADVANCED._serialized_start=10324 + _ISISINTERFACEADVANCED._serialized_end=10663 + _ISISINTERFACELINKPROTECTION._serialized_start=10666 + _ISISINTERFACELINKPROTECTION._serialized_end=11043 + _ISISBASIC._serialized_start=11046 + _ISISBASIC._serialized_end=11259 + _ISISADVANCED._serialized_start=11262 + _ISISADVANCED._serialized_end=11784 + _ISISAUTHENTICATION._serialized_start=11787 + _ISISAUTHENTICATION._serialized_end=11961 + _ISISAUTHENTICATIONBASE._serialized_start=11964 + _ISISAUTHENTICATIONBASE._serialized_end=12191 + _ISISAUTHENTICATIONBASE_AUTHTYPE._serialized_start=10228 + _ISISAUTHENTICATIONBASE_AUTHTYPE._serialized_end=10286 + _ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM._serialized_start=10240 + _ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM._serialized_end=10286 + _ISISV4ROUTERANGE._serialized_start=12194 + _ISISV4ROUTERANGE._serialized_end=12794 + _ISISV4ROUTERANGE_ORIGINTYPE._serialized_start=12542 + _ISISV4ROUTERANGE_ORIGINTYPE._serialized_end=12607 + _ISISV4ROUTERANGE_ORIGINTYPE_ENUM._serialized_start=12556 + _ISISV4ROUTERANGE_ORIGINTYPE_ENUM._serialized_end=12607 + _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE._serialized_start=12609 + _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE._serialized_end=12672 + _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_start=12631 + _ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_end=12672 + _V4ROUTEADDRESS._serialized_start=12797 + _V4ROUTEADDRESS._serialized_end=12937 + _V6ROUTEADDRESS._serialized_start=12940 + _V6ROUTEADDRESS._serialized_end=13080 + _MACROUTEADDRESS._serialized_start=13083 + _MACROUTEADDRESS._serialized_end=13224 + _ISISV6ROUTERANGE._serialized_start=13227 + _ISISV6ROUTERANGE._serialized_end=13827 + _ISISV6ROUTERANGE_ORIGINTYPE._serialized_start=12542 + _ISISV6ROUTERANGE_ORIGINTYPE._serialized_end=12607 + _ISISV6ROUTERANGE_ORIGINTYPE_ENUM._serialized_start=12556 + _ISISV6ROUTERANGE_ORIGINTYPE_ENUM._serialized_end=12607 + _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE._serialized_start=12609 + _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE._serialized_end=12672 + _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_start=12631 + _ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM._serialized_end=12672 + _DEVICEBGPROUTER._serialized_start=13830 + _DEVICEBGPROUTER._serialized_end=13977 + _DEVICEBGPMESSAGEHEADERERROR._serialized_start=13980 + _DEVICEBGPMESSAGEHEADERERROR._serialized_end=14252 + _DEVICEBGPMESSAGEHEADERERROR_SUBCODE._serialized_start=14081 + _DEVICEBGPMESSAGEHEADERERROR_SUBCODE._serialized_end=14240 + _DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM._serialized_start=14093 + _DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM._serialized_end=14240 + _DEVICEBGPOPENMESSAGEERROR._serialized_start=14255 + _DEVICEBGPOPENMESSAGEERROR._serialized_end=14681 + _DEVICEBGPOPENMESSAGEERROR_SUBCODE._serialized_start=14352 + _DEVICEBGPOPENMESSAGEERROR_SUBCODE._serialized_end=14669 + _DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM._serialized_start=14364 + _DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM._serialized_end=14669 + _DEVICEBGPUPDATEMESSAGEERROR._serialized_start=14684 + _DEVICEBGPUPDATEMESSAGEERROR._serialized_end=15288 + _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE._serialized_start=14785 + _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE._serialized_end=15276 + _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM._serialized_start=14797 + _DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM._serialized_end=15276 + _DEVICEBGPHOLDTIMEREXPIRED._serialized_start=15290 + _DEVICEBGPHOLDTIMEREXPIRED._serialized_end=15317 + _DEVICEBGPFINITESTATEMACHINEERROR._serialized_start=15319 + _DEVICEBGPFINITESTATEMACHINEERROR._serialized_end=15353 + _DEVICEBGPCEASEERROR._serialized_start=15356 + _DEVICEBGPCEASEERROR._serialized_end=15839 + _DEVICEBGPCEASEERROR_SUBCODE._serialized_start=15441 + _DEVICEBGPCEASEERROR_SUBCODE._serialized_end=15827 + _DEVICEBGPCEASEERROR_SUBCODE_ENUM._serialized_start=15453 + _DEVICEBGPCEASEERROR_SUBCODE_ENUM._serialized_end=15827 + _DEVICEBGPCUSTOMERROR._serialized_start=15841 + _DEVICEBGPCUSTOMERROR._serialized_end=15925 + _BGPV4PEER._serialized_start=15928 + _BGPV4PEER._serialized_end=16746 + _BGPV4PEER_ASTYPE._serialized_start=16560 + _BGPV4PEER_ASTYPE._serialized_end=16613 + _BGPV4PEER_ASTYPE_ENUM._serialized_start=16570 + _BGPV4PEER_ASTYPE_ENUM._serialized_end=16613 + _BGPV4PEER_ASNUMBERWIDTH._serialized_start=16615 + _BGPV4PEER_ASNUMBERWIDTH._serialized_end=16674 + _BGPV4PEER_ASNUMBERWIDTH_ENUM._serialized_start=16632 + _BGPV4PEER_ASNUMBERWIDTH_ENUM._serialized_end=16674 + _BGPV4INTERFACE._serialized_start=16748 + _BGPV4INTERFACE._serialized_end=16833 + _BGPV4ETHERNETSEGMENT._serialized_start=16836 + _BGPV4ETHERNETSEGMENT._serialized_end=17332 + _BGPV4ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17222 + _BGPV4ETHERNETSEGMENT_ACTIVEMODE._serialized_end=17294 + _BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17236 + _BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=17294 + _BGPETHERNETSEGMENTDFELECTION._serialized_start=17334 + _BGPETHERNETSEGMENTDFELECTION._serialized_end=17412 + _BGPROUTEADVANCED._serialized_start=17415 + _BGPROUTEADVANCED._serialized_end=17889 + _BGPROUTEADVANCED_ORIGIN._serialized_start=17676 + _BGPROUTEADVANCED_ORIGIN._serialized_end=17743 + _BGPROUTEADVANCED_ORIGIN_ENUM._serialized_start=17686 + _BGPROUTEADVANCED_ORIGIN_ENUM._serialized_end=17743 + _BGPCOMMUNITY._serialized_start=17892 + _BGPCOMMUNITY._serialized_end=18184 + _BGPCOMMUNITY_TYPE._serialized_start=18005 + _BGPCOMMUNITY_TYPE._serialized_end=18147 + _BGPCOMMUNITY_TYPE_ENUM._serialized_start=18014 + _BGPCOMMUNITY_TYPE_ENUM._serialized_end=18147 + _BGPEXTCOMMUNITY._serialized_start=18187 + _BGPEXTCOMMUNITY._serialized_end=18692 + _BGPEXTCOMMUNITY_TYPE._serialized_start=18335 + _BGPEXTCOMMUNITY_TYPE._serialized_end=18523 + _BGPEXTCOMMUNITY_TYPE_ENUM._serialized_start=18344 + _BGPEXTCOMMUNITY_TYPE_ENUM._serialized_end=18523 + _BGPEXTCOMMUNITY_SUBTYPE._serialized_start=18526 + _BGPEXTCOMMUNITY_SUBTYPE._serialized_end=18661 + _BGPEXTCOMMUNITY_SUBTYPE_ENUM._serialized_start=18537 + _BGPEXTCOMMUNITY_SUBTYPE_ENUM._serialized_end=18661 + _BGPASPATH._serialized_start=18695 + _BGPASPATH._serialized_end=19013 + _BGPASPATH_ASSETMODE._serialized_start=18807 + _BGPASPATH_ASSETMODE._serialized_end=18997 + _BGPASPATH_ASSETMODE_ENUM._serialized_start=18821 + _BGPASPATH_ASSETMODE_ENUM._serialized_end=18997 + _BGPASPATHSEGMENT._serialized_start=19016 + _BGPASPATHSEGMENT._serialized_end=19210 + _BGPASPATHSEGMENT_TYPE._serialized_start=19108 + _BGPASPATHSEGMENT_TYPE._serialized_end=19201 + _BGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19116 + _BGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19201 + _BGPV4EVPNEVIS._serialized_start=19213 + _BGPV4EVPNEVIS._serialized_end=19381 + _BGPV4EVPNEVIS_CHOICE._serialized_start=19322 + _BGPV4EVPNEVIS_CHOICE._serialized_end=19370 + _BGPV4EVPNEVIS_CHOICE_ENUM._serialized_start=19332 + _BGPV4EVPNEVIS_CHOICE_ENUM._serialized_end=19370 + _BGPV4EVIVXLAN._serialized_start=19384 + _BGPV4EVIVXLAN._serialized_end=20123 + _BGPV4EVIVXLAN_REPLICATIONTYPE._serialized_start=20007 + _BGPV4EVIVXLAN_REPLICATIONTYPE._serialized_end=20074 + _BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20026 + _BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20074 + _BGPV4EVIVXLANBROADCASTDOMAIN._serialized_start=20126 + _BGPV4EVIVXLANBROADCASTDOMAIN._serialized_end=20306 + _BGPCMACIPRANGE._serialized_start=20309 + _BGPCMACIPRANGE._serialized_end=20775 + _BGPROUTEDISTINGUISHER._serialized_start=20778 + _BGPROUTEDISTINGUISHER._serialized_end=21058 + _BGPROUTEDISTINGUISHER_RDTYPE._serialized_start=20925 + _BGPROUTEDISTINGUISHER_RDTYPE._serialized_end=21006 + _BGPROUTEDISTINGUISHER_RDTYPE_ENUM._serialized_start=20935 + _BGPROUTEDISTINGUISHER_RDTYPE_ENUM._serialized_end=21006 + _BGPROUTETARGET._serialized_start=21061 + _BGPROUTETARGET._serialized_end=21263 + _BGPROUTETARGET_RTTYPE._serialized_start=21157 + _BGPROUTETARGET_RTTYPE._serialized_end=21238 + _BGPROUTETARGET_RTTYPE_ENUM._serialized_start=20935 + _BGPROUTETARGET_RTTYPE_ENUM._serialized_end=21006 + _BGPADVANCED._serialized_start=21266 + _BGPADVANCED._serialized_end=21521 + _BGPCAPABILITY._serialized_start=21524 + _BGPCAPABILITY._serialized_end=22821 + _BGPLEARNEDINFORMATIONFILTER._serialized_start=22824 + _BGPLEARNEDINFORMATIONFILTER._serialized_end=22969 + _BGPV4ROUTERANGE._serialized_start=22972 + _BGPV4ROUTERANGE._serialized_end=23760 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=23524 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=23588 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=23539 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=23588 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=23590 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=23655 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=23612 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=23655 + _BGPADDPATH._serialized_start=23762 + _BGPADDPATH._serialized_end=23808 + _BGPEXTENDEDCOMMUNITY._serialized_start=23811 + _BGPEXTENDEDCOMMUNITY._serialized_end=24694 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_start=24452 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_end=24683 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_start=24463 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_end=24683 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_start=24697 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_end=24856 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_start=24859 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_end=25018 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_start=25021 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_end=25425 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=25329 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=25339 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_start=25428 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_end=25594 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_start=25597 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_end=25763 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_start=25766 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_end=26182 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_start=25329 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_start=25339 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_start=26185 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_end=26344 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_start=26347 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_end=26506 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_start=26509 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_end=26913 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_start=25329 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_start=25339 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_end=25414 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_start=26915 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_end=27022 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_start=27025 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_end=27158 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_start=27161 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_end=27541 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_start=27451 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_end=27530 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_start=27461 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_end=27530 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_start=27543 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_end=27632 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_start=27635 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_end=27905 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_start=27837 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_end=27894 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_start=27847 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_end=27894 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_start=27908 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_end=28056 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_start=28059 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_end=28362 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=28290 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=28351 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=28300 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=28351 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_start=28365 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_end=28529 + _BGPV6ROUTERANGE._serialized_start=28532 + _BGPV6ROUTERANGE._serialized_end=29320 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=23524 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=23588 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=23539 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=23588 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=23590 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=23655 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=23612 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=23655 + _BGPSRTEV4POLICY._serialized_start=29323 + _BGPSRTEV4POLICY._serialized_end=30214 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=23524 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=23588 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=23539 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=23588 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=23590 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=23655 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=23612 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=23655 + _BGPSRTEV4TUNNELTLV._serialized_start=30217 + _BGPSRTEV4TUNNELTLV._serialized_end=30783 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=30786 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=31104 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=30977 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=31037 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=23612 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=23655 + _BGPSRTECOLORSUBTLV._serialized_start=31106 + _BGPSRTECOLORSUBTLV._serialized_end=31156 + _BGPSRTEBINDINGSUBTLV._serialized_start=31159 + _BGPSRTEBINDINGSUBTLV._serialized_end=31521 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=31355 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=31446 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=31373 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=31446 + _BGPSRTEPREFERENCESUBTLV._serialized_start=31523 + _BGPSRTEPREFERENCESUBTLV._serialized_end=31588 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=31590 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=31669 + _BGPSRTEPOLICYNAMESUBTLV._serialized_start=31671 + _BGPSRTEPOLICYNAMESUBTLV._serialized_end=31738 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=31741 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=32083 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=31895 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=32052 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=31923 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=32052 + _BGPSRTESEGMENTLIST._serialized_start=32086 + _BGPSRTESEGMENTLIST._serialized_end=32237 + _BGPSRTESEGMENT._serialized_start=32240 + _BGPSRTESEGMENT._serialized_end=33100 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=32892 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=33063 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=32908 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=33063 + _BGPSRTESRMPLSSID._serialized_start=33103 + _BGPSRTESRMPLSSID._serialized_end=33231 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=33234 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=33436 + _BGPSRTESEGMENTATYPESUBTLV._serialized_start=33439 + _BGPSRTESEGMENTATYPESUBTLV._serialized_end=33606 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=33609 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=33787 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=33790 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=33989 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=33992 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=34191 + _BGPSRTESEGMENTETYPESUBTLV._serialized_start=34194 + _BGPSRTESEGMENTETYPESUBTLV._serialized_end=34405 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=34408 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=34623 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=34626 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=34975 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=34978 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=35193 + _BGPSRTESEGMENTITYPESUBTLV._serialized_start=35196 + _BGPSRTESEGMENTITYPESUBTLV._serialized_end=35428 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=35431 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=35901 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=35904 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=36240 + _BGPSRTEV6POLICY._serialized_start=36243 + _BGPSRTEV6POLICY._serialized_end=37133 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=23524 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=23588 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=23539 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=23588 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=23590 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=23655 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=23612 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=23655 + _BGPSRTEV6TUNNELTLV._serialized_start=37136 + _BGPSRTEV6TUNNELTLV._serialized_end=37702 + _BGPGRACEFULRESTART._serialized_start=37705 + _BGPGRACEFULRESTART._serialized_end=37889 + _BGPV6PEER._serialized_start=37892 + _BGPV6PEER._serialized_end=38761 + _BGPV6PEER_ASTYPE._serialized_start=16560 + _BGPV6PEER_ASTYPE._serialized_end=16613 + _BGPV6PEER_ASTYPE_ENUM._serialized_start=16570 + _BGPV6PEER_ASTYPE_ENUM._serialized_end=16613 + _BGPV6PEER_ASNUMBERWIDTH._serialized_start=16615 + _BGPV6PEER_ASNUMBERWIDTH._serialized_end=16674 + _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_start=16632 + _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_end=16674 + _BGPV6INTERFACE._serialized_start=38763 + _BGPV6INTERFACE._serialized_end=38848 + _BGPV6SEGMENTROUTING._serialized_start=38851 + _BGPV6SEGMENTROUTING._serialized_end=39348 + _BGPV6ETHERNETSEGMENT._serialized_start=39351 + _BGPV6ETHERNETSEGMENT._serialized_end=39847 + _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17222 + _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_end=17294 + _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17236 + _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=17294 + _BGPV6EVPNEVIS._serialized_start=39850 + _BGPV6EVPNEVIS._serialized_end=40018 + _BGPV6EVPNEVIS_CHOICE._serialized_start=19322 + _BGPV6EVPNEVIS_CHOICE._serialized_end=19370 + _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_start=19332 + _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_end=19370 + _BGPV6EVIVXLAN._serialized_start=40021 + _BGPV6EVIVXLAN._serialized_end=40760 + _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_start=20007 + _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_end=20074 + _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20026 + _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20074 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=40763 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=40943 + _DEVICEVXLAN._serialized_start=40945 + _DEVICEVXLAN._serialized_end=41038 + _VXLANV4TUNNEL._serialized_start=41041 + _VXLANV4TUNNEL._serialized_end=41228 + _VXLANV6TUNNEL._serialized_start=41231 + _VXLANV6TUNNEL._serialized_end=41418 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=41421 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=41723 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=41651 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=41712 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=41661 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=41712 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=41726 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=42028 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=41651 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=41712 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=41661 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=41712 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=42030 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=42132 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=42134 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=42236 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=42239 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=42389 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=42392 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=42585 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=42588 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=42781 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=42783 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=42858 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=42860 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=42935 + _DEVICERSVP._serialized_start=42938 + _DEVICERSVP._serialized_end=43083 + _RSVPIPV4INTERFACE._serialized_start=43086 + _RSVPIPV4INTERFACE._serialized_end=43667 + _RSVPLSPIPV4INTERFACE._serialized_start=43670 + _RSVPLSPIPV4INTERFACE._serialized_end=43878 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=43881 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=44378 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=44166 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=44258 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=44186 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=44258 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=44381 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=44936 + _RSVPSESSIONATTRIBUTE._serialized_start=44939 + _RSVPSESSIONATTRIBUTE._serialized_end=45563 + _RSVPRESOURCEAFFINITIES._serialized_start=45566 + _RSVPRESOURCEAFFINITIES._serialized_end=45716 + _RSVPTSPEC._serialized_start=45719 + _RSVPTSPEC._serialized_end=46006 + _RSVPFASTREROUTE._serialized_start=46009 + _RSVPFASTREROUTE._serialized_end=46464 + _RSVPERO._serialized_start=46467 + _RSVPERO._serialized_end=46763 + _RSVPERO_PREPENDNEIGHBORIP._serialized_start=46620 + _RSVPERO_PREPENDNEIGHBORIP._serialized_end=46721 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=46641 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=46721 + _RSVPEROSUBOBJECT._serialized_start=46766 + _RSVPEROSUBOBJECT._serialized_end=47162 + _RSVPEROSUBOBJECT_TYPE._serialized_start=46976 + _RSVPEROSUBOBJECT_TYPE._serialized_end=47032 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=46984 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=47032 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=47034 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=47091 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=47045 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=47091 + _FLOW._serialized_start=47165 + _FLOW._serialized_end=47432 + _FLOWTXRX._serialized_start=47435 + _FLOWTXRX._serialized_end=47623 + _FLOWTXRX_CHOICE._serialized_start=47557 + _FLOWTXRX_CHOICE._serialized_end=47612 + _FLOWTXRX_CHOICE_ENUM._serialized_start=47567 + _FLOWTXRX_CHOICE_ENUM._serialized_end=47612 + _FLOWPORT._serialized_start=47625 + _FLOWPORT._serialized_end=47721 + _FLOWROUTER._serialized_start=47724 + _FLOWROUTER._serialized_end=47886 + _FLOWROUTER_MODE._serialized_start=47820 + _FLOWROUTER_MODE._serialized_end=47877 + _FLOWROUTER_MODE_ENUM._serialized_start=47828 + _FLOWROUTER_MODE_ENUM._serialized_end=47877 + _FLOWHEADER._serialized_start=47889 + _FLOWHEADER._serialized_end=48803 + _FLOWHEADER_CHOICE._serialized_start=48547 + _FLOWHEADER_CHOICE._serialized_end=48792 + _FLOWHEADER_CHOICE_ENUM._serialized_start=48558 + _FLOWHEADER_CHOICE_ENUM._serialized_end=48792 + _FLOWCUSTOM._serialized_start=48805 + _FLOWCUSTOM._serialized_end=48894 + _FLOWCUSTOMMETRICTAG._serialized_start=48896 + _FLOWCUSTOMMETRICTAG._serialized_end=49009 + _FLOWETHERNET._serialized_start=49012 + _FLOWETHERNET._serialized_end=49218 + _FLOWVLAN._serialized_start=49221 + _FLOWVLAN._serialized_end=49393 + _FLOWVXLAN._serialized_start=49396 + _FLOWVXLAN._serialized_end=49591 + _FLOWIPV4._serialized_start=49594 + _FLOWIPV4._serialized_end=50327 + _FLOWIPV4PRIORITY._serialized_start=50330 + _FLOWIPV4PRIORITY._serialized_end=50588 + _FLOWIPV4PRIORITY_CHOICE._serialized_start=50516 + _FLOWIPV4PRIORITY_CHOICE._serialized_end=50577 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=50526 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=50577 + _FLOWIPV4DSCP._serialized_start=50590 + _FLOWIPV4DSCP._serialized_end=50688 + _FLOWIPV4TOS._serialized_start=50691 + _FLOWIPV4TOS._serialized_end=51014 + _FLOWIPV6._serialized_start=51017 + _FLOWIPV6._serialized_end=51418 + _FLOWPFCPAUSE._serialized_start=51421 + _FLOWPFCPAUSE._serialized_end=52190 + _FLOWETHERNETPAUSE._serialized_start=52193 + _FLOWETHERNETPAUSE._serialized_end=52484 + _FLOWTCP._serialized_start=52487 + _FLOWTCP._serialized_end=53167 + _FLOWUDP._serialized_start=53170 + _FLOWUDP._serialized_end=53361 + _FLOWGRE._serialized_start=53364 + _FLOWGRE._serialized_end=53672 + _FLOWGTPV1._serialized_start=53675 + _FLOWGTPV1._serialized_end=54378 + _FLOWGTPEXTENSION._serialized_start=54381 + _FLOWGTPEXTENSION._serialized_end=54606 + _FLOWGTPV2._serialized_start=54609 + _FLOWGTPV2._serialized_end=55092 + _FLOWARP._serialized_start=55095 + _FLOWARP._serialized_end=55661 + _FLOWICMP._serialized_start=55664 + _FLOWICMP._serialized_end=55811 + _FLOWICMP_CHOICE._serialized_start=55757 + _FLOWICMP_CHOICE._serialized_end=55800 + _FLOWICMP_CHOICE_ENUM._serialized_start=55767 + _FLOWICMP_CHOICE_ENUM._serialized_end=55800 + _FLOWICMPECHO._serialized_start=55814 + _FLOWICMPECHO._serialized_end=56089 + _FLOWICMPV6._serialized_start=56092 + _FLOWICMPV6._serialized_end=56245 + _FLOWICMPV6_CHOICE._serialized_start=55757 + _FLOWICMPV6_CHOICE._serialized_end=55800 + _FLOWICMPV6_CHOICE_ENUM._serialized_start=55767 + _FLOWICMPV6_CHOICE_ENUM._serialized_end=55800 + _FLOWICMPV6ECHO._serialized_start=56248 + _FLOWICMPV6ECHO._serialized_end=56535 + _FLOWPPP._serialized_start=56538 + _FLOWPPP._serialized_end=56693 + _FLOWIGMPV1._serialized_start=56696 + _FLOWIGMPV1._serialized_end=56953 + _FLOWMPLS._serialized_start=56956 + _FLOWMPLS._serialized_end=57179 + _FLOWSIZE._serialized_start=57182 + _FLOWSIZE._serialized_end=57500 + _FLOWSIZE_CHOICE._serialized_start=57390 + _FLOWSIZE_CHOICE._serialized_end=57479 + _FLOWSIZE_CHOICE_ENUM._serialized_start=57400 + _FLOWSIZE_CHOICE_ENUM._serialized_end=57479 + _FLOWSIZEINCREMENT._serialized_start=57502 + _FLOWSIZEINCREMENT._serialized_end=57605 + _FLOWSIZERANDOM._serialized_start=57607 + _FLOWSIZERANDOM._serialized_end=57675 + _FLOWSIZEWEIGHTPAIRS._serialized_start=57678 + _FLOWSIZEWEIGHTPAIRS._serialized_end=58075 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=57875 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=57936 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=57885 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=57936 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=57938 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=58049 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=57952 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=58049 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=58077 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=58164 + _FLOWRATE._serialized_start=58167 + _FLOWRATE._serialized_end=58511 + _FLOWRATE_CHOICE._serialized_start=58345 + _FLOWRATE_CHOICE._serialized_end=58442 + _FLOWRATE_CHOICE_ENUM._serialized_start=58355 + _FLOWRATE_CHOICE_ENUM._serialized_end=58442 + _FLOWDURATION._serialized_start=58514 + _FLOWDURATION._serialized_end=58855 + _FLOWDURATION_CHOICE._serialized_start=58746 + _FLOWDURATION_CHOICE._serialized_end=58844 + _FLOWDURATION_CHOICE_ENUM._serialized_start=58756 + _FLOWDURATION_CHOICE_ENUM._serialized_end=58844 + _FLOWCONTINUOUS._serialized_start=58857 + _FLOWCONTINUOUS._serialized_end=58930 + _FLOWDELAY._serialized_start=58933 + _FLOWDELAY._serialized_end=59201 + _FLOWDELAY_CHOICE._serialized_start=59068 + _FLOWDELAY_CHOICE._serialized_end=59147 + _FLOWDELAY_CHOICE_ENUM._serialized_start=59078 + _FLOWDELAY_CHOICE_ENUM._serialized_end=59147 + _FLOWFIXEDPACKETS._serialized_start=59203 + _FLOWFIXEDPACKETS._serialized_end=59312 + _FLOWFIXEDSECONDS._serialized_start=59314 + _FLOWFIXEDSECONDS._serialized_end=59423 + _FLOWBURST._serialized_start=59426 + _FLOWBURST._serialized_end=59586 + _FLOWDURATIONINTERBURSTGAP._serialized_start=59589 + _FLOWDURATIONINTERBURSTGAP._serialized_end=59889 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=59068 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=59147 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=59078 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=59147 + _FLOWMETRICS._serialized_start=59892 + _FLOWMETRICS._serialized_end=60145 + _FLOWLATENCYMETRICS._serialized_start=60148 + _FLOWLATENCYMETRICS._serialized_end=60332 + _FLOWLATENCYMETRICS_MODE._serialized_start=60245 + _FLOWLATENCYMETRICS_MODE._serialized_end=60312 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=60253 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=60312 + _FLOWPREDEFINEDTAGS._serialized_start=60334 + _FLOWPREDEFINEDTAGS._serialized_end=60388 + _FLOWRXTXRATIO._serialized_start=60391 + _FLOWRXTXRATIO._serialized_end=60605 + _FLOWRXTXRATIO_CHOICE._serialized_start=60526 + _FLOWRXTXRATIO_CHOICE._serialized_end=60584 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=60536 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=60584 + _FLOWRXTXRATIORXCOUNT._serialized_start=60607 + _FLOWRXTXRATIORXCOUNT._serialized_end=60629 + _EVENT._serialized_start=60632 + _EVENT._serialized_end=60823 + _EVENTRXRATETHRESHOLD._serialized_start=60825 + _EVENTRXRATETHRESHOLD._serialized_end=60917 + _EVENTLINK._serialized_start=60919 + _EVENTLINK._serialized_end=60962 + _EVENTROUTEADVERTISEWITHDRAW._serialized_start=60964 + _EVENTROUTEADVERTISEWITHDRAW._serialized_end=61025 + _EVENTREQUEST._serialized_start=61028 + _EVENTREQUEST._serialized_end=61273 + _EVENTREQUEST_TYPE._serialized_start=61104 + _EVENTREQUEST_TYPE._serialized_end=61273 + _EVENTREQUEST_TYPE_ENUM._serialized_start=61113 + _EVENTREQUEST_TYPE_ENUM._serialized_end=61273 + _EVENTSUBSCRIPTION._serialized_start=61275 + _EVENTSUBSCRIPTION._serialized_end=61373 + _LLDP._serialized_start=61376 + _LLDP._serialized_end=61669 + _LLDPCONNECTION._serialized_start=61672 + _LLDPCONNECTION._serialized_end=61841 + _LLDPCONNECTION_CHOICE._serialized_start=61768 + _LLDPCONNECTION_CHOICE._serialized_end=61816 + _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2258 + _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2296 + _LLDPCHASSISID._serialized_start=61844 + _LLDPCHASSISID._serialized_end=62197 + _LLDPCHASSISID_CHOICE._serialized_start=62036 + _LLDPCHASSISID_CHOICE._serialized_end=62141 + _LLDPCHASSISID_CHOICE_ENUM._serialized_start=62046 + _LLDPCHASSISID_CHOICE_ENUM._serialized_end=62141 + _LLDPPORTID._serialized_start=62200 + _LLDPPORTID._serialized_end=62551 + _LLDPPORTID_CHOICE._serialized_start=62036 + _LLDPPORTID_CHOICE._serialized_end=62141 + _LLDPPORTID_CHOICE_ENUM._serialized_start=62046 + _LLDPPORTID_CHOICE_ENUM._serialized_end=62141 + _LLDPCHASSISMACSUBTYPE._serialized_start=62554 + _LLDPCHASSISMACSUBTYPE._serialized_end=62763 + _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3062 + _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3116 + _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3072 + _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3116 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=62766 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=62989 + _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3062 + _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3116 + _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3072 + _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3116 + _LLDPSYSTEMNAME._serialized_start=62992 + _LLDPSYSTEMNAME._serialized_end=63187 + _LLDPSYSTEMNAME_CHOICE._serialized_start=3062 + _LLDPSYSTEMNAME_CHOICE._serialized_end=3116 + _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3072 + _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3116 + _ERROR._serialized_start=63190 + _ERROR._serialized_end=63354 + _ERROR_KIND._serialized_start=63275 + _ERROR_KIND._serialized_end=63336 + _ERROR_KIND_ENUM._serialized_start=63283 + _ERROR_KIND_ENUM._serialized_end=63336 + _WARNING._serialized_start=63356 + _WARNING._serialized_end=63383 + _CONFIGUPDATE._serialized_start=63386 + _CONFIGUPDATE._serialized_end=63542 + _CONFIGUPDATE_CHOICE._serialized_start=63487 + _CONFIGUPDATE_CHOICE._serialized_end=63531 + _CONFIGUPDATE_CHOICE_ENUM._serialized_start=63497 + _CONFIGUPDATE_CHOICE_ENUM._serialized_end=63531 + _FLOWSUPDATE._serialized_start=63545 + _FLOWSUPDATE._serialized_end=63707 + _FLOWSUPDATE_PROPERTYNAMES._serialized_start=63647 + _FLOWSUPDATE_PROPERTYNAMES._serialized_end=63707 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=63664 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=63707 + _CONTROLSTATE._serialized_start=63710 + _CONTROLSTATE._serialized_end=63963 + _CONTROLSTATE_CHOICE._serialized_start=63882 + _CONTROLSTATE_CHOICE._serialized_end=63952 + _CONTROLSTATE_CHOICE_ENUM._serialized_start=63892 + _CONTROLSTATE_CHOICE_ENUM._serialized_end=63952 + _STATEPORT._serialized_start=63966 + _STATEPORT._serialized_end=64169 + _STATEPORT_CHOICE._serialized_start=64102 + _STATEPORT_CHOICE._serialized_end=64158 + _STATEPORT_CHOICE_ENUM._serialized_start=64112 + _STATEPORT_CHOICE_ENUM._serialized_end=64158 + _STATETRAFFIC._serialized_start=64172 + _STATETRAFFIC._serialized_end=64357 + _STATETRAFFIC_CHOICE._serialized_start=64294 + _STATETRAFFIC_CHOICE._serialized_end=64346 + _STATETRAFFIC_CHOICE_ENUM._serialized_start=64304 + _STATETRAFFIC_CHOICE_ENUM._serialized_end=64346 + _STATEPROTOCOL._serialized_start=64360 + _STATEPROTOCOL._serialized_end=64618 + _STATEPROTOCOL_CHOICE._serialized_start=64544 + _STATEPROTOCOL_CHOICE._serialized_end=64607 + _STATEPROTOCOL_CHOICE_ENUM._serialized_start=64554 + _STATEPROTOCOL_CHOICE_ENUM._serialized_end=64607 + _STATEPORTLINK._serialized_start=64621 + _STATEPORTLINK._serialized_end=64769 + _STATEPORTLINK_STATE._serialized_start=64709 + _STATEPORTLINK_STATE._serialized_end=64759 + _STATEPORTLINK_STATE_ENUM._serialized_start=12631 + _STATEPORTLINK_STATE_ENUM._serialized_end=12672 + _STATEPORTCAPTURE._serialized_start=64772 + _STATEPORTCAPTURE._serialized_end=64929 + _STATEPORTCAPTURE_STATE._serialized_start=64866 + _STATEPORTCAPTURE_STATE._serialized_end=64919 + _STATEPORTCAPTURE_STATE_ENUM._serialized_start=64875 + _STATEPORTCAPTURE_STATE_ENUM._serialized_end=64919 + _STATETRAFFICFLOWTRANSMIT._serialized_start=64932 + _STATETRAFFICFLOWTRANSMIT._serialized_end=65128 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=65042 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=65118 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=65051 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=65118 + _STATEPROTOCOLALL._serialized_start=65131 + _STATEPROTOCOLALL._serialized_end=65268 + _STATEPROTOCOLALL_STATE._serialized_start=64866 + _STATEPROTOCOLALL_STATE._serialized_end=64919 + _STATEPROTOCOLALL_STATE_ENUM._serialized_start=64875 + _STATEPROTOCOLALL_STATE_ENUM._serialized_end=64919 + _STATEPROTOCOLROUTE._serialized_start=65271 + _STATEPROTOCOLROUTE._serialized_end=65435 + _STATEPROTOCOLROUTE_STATE._serialized_start=65364 + _STATEPROTOCOLROUTE_STATE._serialized_end=65425 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=65373 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=65425 + _STATEPROTOCOLLACP._serialized_start=65438 + _STATEPROTOCOLLACP._serialized_end=65615 + _STATEPROTOCOLLACP_CHOICE._serialized_start=65560 + _STATEPROTOCOLLACP_CHOICE._serialized_end=65604 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=65570 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=65604 + _STATEPROTOCOLLACPADMIN._serialized_start=65618 + _STATEPROTOCOLLACPADMIN._serialized_end=65790 + _STATEPROTOCOLLACPADMIN_STATE._serialized_start=64709 + _STATEPROTOCOLLACPADMIN_STATE._serialized_end=64759 + _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=12631 + _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=12672 + _CONTROLACTION._serialized_start=65793 + _CONTROLACTION._serialized_end=65960 + _CONTROLACTION_CHOICE._serialized_start=65902 + _CONTROLACTION_CHOICE._serialized_end=65949 + _CONTROLACTION_CHOICE_ENUM._serialized_start=65912 + _CONTROLACTION_CHOICE_ENUM._serialized_end=65949 + _CONTROLACTIONRESPONSE._serialized_start=65962 + _CONTROLACTIONRESPONSE._serialized_end=66042 + _ACTIONRESPONSE._serialized_start=66045 + _ACTIONRESPONSE._serialized_end=66222 + _ACTIONRESPONSE_CHOICE._serialized_start=65902 + _ACTIONRESPONSE_CHOICE._serialized_end=65949 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=65912 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=65949 + _ACTIONPROTOCOL._serialized_start=66225 + _ACTIONPROTOCOL._serialized_end=66485 + _ACTIONPROTOCOL_CHOICE._serialized_start=66412 + _ACTIONPROTOCOL_CHOICE._serialized_end=66474 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=66422 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=66474 + _ACTIONRESPONSEPROTOCOL._serialized_start=66488 + _ACTIONRESPONSEPROTOCOL._serialized_end=66734 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=66670 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=66723 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=23612 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=23655 + _ACTIONPROTOCOLIPV4._serialized_start=66737 + _ACTIONPROTOCOLIPV4._serialized_end=66914 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=66860 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=66903 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=66870 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=66903 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=66917 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=67118 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=66860 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=66903 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=66870 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=66903 + _ACTIONPROTOCOLIPV4PING._serialized_start=67120 + _ACTIONPROTOCOLIPV4PING._serialized_end=67198 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=67200 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=67299 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=67301 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=67397 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=67400 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=67659 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=67564 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=67624 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=67574 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=67624 + _ACTIONPROTOCOLIPV6._serialized_start=67662 + _ACTIONPROTOCOLIPV6._serialized_end=67839 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=66860 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=66903 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=66870 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=66903 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=67842 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=68043 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=66860 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=66903 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=66870 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=66903 + _ACTIONPROTOCOLIPV6PING._serialized_start=68045 + _ACTIONPROTOCOLIPV6PING._serialized_end=68123 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=68125 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=68224 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=68226 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=68322 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=68325 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=68584 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=67564 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=67624 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=67574 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=67624 + _ACTIONPROTOCOLBGP._serialized_start=68587 + _ACTIONPROTOCOLBGP._serialized_end=68898 + _ACTIONPROTOCOLBGP_CHOICE._serialized_start=68805 + _ACTIONPROTOCOLBGP_CHOICE._serialized_end=68887 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=68815 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=68887 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=68901 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=69626 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=69426 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=69615 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=69437 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=69615 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=69628 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=69736 + _METRICSREQUEST._serialized_start=69739 + _METRICSREQUEST._serialized_end=70299 + _METRICSREQUEST_CHOICE._serialized_start=70164 + _METRICSREQUEST_CHOICE._serialized_end=70288 + _METRICSREQUEST_CHOICE_ENUM._serialized_start=70174 + _METRICSREQUEST_CHOICE_ENUM._serialized_end=70288 + _METRICSRESPONSE._serialized_start=70302 + _METRICSRESPONSE._serialized_end=70938 + _METRICSRESPONSE_CHOICE._serialized_start=70730 + _METRICSRESPONSE_CHOICE._serialized_end=70927 + _METRICSRESPONSE_CHOICE_ENUM._serialized_start=70741 + _METRICSRESPONSE_CHOICE_ENUM._serialized_end=70927 + _PORTMETRICSREQUEST._serialized_start=70941 + _PORTMETRICSREQUEST._serialized_end=71274 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=71048 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=71274 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=71064 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=71274 + _PORTMETRIC._serialized_start=71277 + _PORTMETRIC._serialized_end=72051 + _PORTMETRIC_LINK._serialized_start=71693 + _PORTMETRIC_LINK._serialized_end=71742 + _PORTMETRIC_LINK_ENUM._serialized_start=12631 + _PORTMETRIC_LINK_ENUM._serialized_end=12672 + _PORTMETRIC_CAPTURE._serialized_start=71744 + _PORTMETRIC_CAPTURE._serialized_end=71804 + _PORTMETRIC_CAPTURE_ENUM._serialized_start=71755 + _PORTMETRIC_CAPTURE_ENUM._serialized_end=71804 + _PORTMETRIC_TRANSMIT._serialized_start=71806 + _PORTMETRIC_TRANSMIT._serialized_end=71867 + _PORTMETRIC_TRANSMIT_ENUM._serialized_start=71755 + _PORTMETRIC_TRANSMIT_ENUM._serialized_end=71804 + _FLOWMETRICSREQUEST._serialized_start=72054 + _FLOWMETRICSREQUEST._serialized_end=72366 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=72215 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=72366 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=72231 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=72366 + _FLOWTAGGEDMETRICSFILTER._serialized_start=72369 + _FLOWTAGGEDMETRICSFILTER._serialized_end=72741 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=72567 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=72703 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=72582 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=72703 + _FLOWMETRICTAGFILTER._serialized_start=72743 + _FLOWMETRICTAGFILTER._serialized_end=72808 + _FLOWMETRIC._serialized_start=72811 + _FLOWMETRIC._serialized_end=73459 + _FLOWMETRIC_TRANSMIT._serialized_start=73239 + _FLOWMETRIC_TRANSMIT._serialized_end=73312 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=73251 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=73312 + _FLOWTAGGEDMETRIC._serialized_start=73462 + _FLOWTAGGEDMETRIC._serialized_end=73865 + _FLOWMETRICTAG._serialized_start=73867 + _FLOWMETRICTAG._serialized_end=73950 + _FLOWMETRICTAGVALUE._serialized_start=73953 + _FLOWMETRICTAGVALUE._serialized_end=74147 + _FLOWMETRICTAGVALUE_CHOICE._serialized_start=74069 + _FLOWMETRICTAGVALUE_CHOICE._serialized_end=74120 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=74079 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=74120 + _METRICTIMESTAMP._serialized_start=74149 + _METRICTIMESTAMP._serialized_end=74276 + _METRICLATENCY._serialized_start=74279 + _METRICLATENCY._serialized_end=74414 + _BGPV4METRICSREQUEST._serialized_start=74417 + _BGPV4METRICSREQUEST._serialized_end=74922 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=74526 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=74922 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=74542 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=74922 + _BGPV4METRIC._serialized_start=74925 + _BGPV4METRIC._serialized_end=76055 + _BGPV4METRIC_SESSIONSTATE._serialized_start=75528 + _BGPV4METRIC_SESSIONSTATE._serialized_end=75585 + _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=12631 + _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=12672 + _BGPV4METRIC_FSMSTATE._serialized_start=75587 + _BGPV4METRIC_FSMSTATE._serialized_end=75705 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=75599 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=75705 + _BGPV6METRICSREQUEST._serialized_start=76058 + _BGPV6METRICSREQUEST._serialized_end=76563 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=74526 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=74922 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=74542 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=74922 + _BGPV6METRIC._serialized_start=76566 + _BGPV6METRIC._serialized_end=77696 + _BGPV6METRIC_SESSIONSTATE._serialized_start=75528 + _BGPV6METRIC_SESSIONSTATE._serialized_end=75585 + _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=12631 + _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=12672 + _BGPV6METRIC_FSMSTATE._serialized_start=75587 + _BGPV6METRIC_FSMSTATE._serialized_end=75705 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=75599 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=75705 + _ISISMETRICSREQUEST._serialized_start=77699 + _ISISMETRICSREQUEST._serialized_end=78485 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=77808 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=78485 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=77824 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=78485 + _ISISMETRIC._serialized_start=78488 + _ISISMETRIC._serialized_end=80012 + _LAGMETRICSREQUEST._serialized_start=80015 + _LAGMETRICSREQUEST._serialized_end=80332 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=80119 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=80332 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80135 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=80332 + _LAGMETRIC._serialized_start=80335 + _LAGMETRIC._serialized_end=80891 + _LAGMETRIC_OPERSTATUS._serialized_start=80663 + _LAGMETRIC_OPERSTATUS._serialized_end=80718 + _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=12631 + _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=12672 + _LACPMETRICSREQUEST._serialized_start=80894 + _LACPMETRICSREQUEST._serialized_end=81330 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=81031 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=81330 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=81047 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81330 + _LACPMETRIC._serialized_start=81333 + _LACPMETRIC._serialized_end=82370 + _LACPMETRIC_ACTIVITY._serialized_start=81899 + _LACPMETRIC_ACTIVITY._serialized_end=81959 + _LACPMETRIC_ACTIVITY_ENUM._serialized_start=81911 + _LACPMETRIC_ACTIVITY_ENUM._serialized_end=81959 + _LACPMETRIC_TIMEOUT._serialized_start=81961 + _LACPMETRIC_TIMEOUT._serialized_end=82016 + _LACPMETRIC_TIMEOUT_ENUM._serialized_start=81972 + _LACPMETRIC_TIMEOUT_ENUM._serialized_end=82016 + _LACPMETRIC_SYNCHRONIZATION._serialized_start=82018 + _LACPMETRIC_SYNCHRONIZATION._serialized_end=82087 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=82037 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=82087 + _LLDPMETRICSREQUEST._serialized_start=82373 + _LLDPMETRICSREQUEST._serialized_end=82626 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=82480 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=82626 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=82496 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82626 + _LLDPMETRIC._serialized_start=82629 + _LLDPMETRIC._serialized_end=82931 + _RSVPMETRICSREQUEST._serialized_start=82934 + _RSVPMETRICSREQUEST._serialized_end=83640 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=83043 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=83640 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83059 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83640 + _RSVPMETRIC._serialized_start=83643 + _RSVPMETRIC._serialized_end=85039 + _STATESREQUEST._serialized_start=85042 + _STATESREQUEST._serialized_end=85574 + _STATESREQUEST_CHOICE._serialized_start=85421 + _STATESREQUEST_CHOICE._serialized_end=85563 + _STATESREQUEST_CHOICE_ENUM._serialized_start=85432 + _STATESREQUEST_CHOICE_ENUM._serialized_end=85563 + _STATESRESPONSE._serialized_start=85577 + _STATESRESPONSE._serialized_end=86069 + _STATESRESPONSE_CHOICE._serialized_start=85421 + _STATESRESPONSE_CHOICE._serialized_end=85563 + _STATESRESPONSE_CHOICE_ENUM._serialized_start=85432 + _STATESRESPONSE_CHOICE_ENUM._serialized_end=85563 + _NEIGHBORSV4STATESREQUEST._serialized_start=86071 + _NEIGHBORSV4STATESREQUEST._serialized_end=86121 + _NEIGHBORSV4STATE._serialized_start=86124 + _NEIGHBORSV4STATE._serialized_end=86288 + _NEIGHBORSV6STATESREQUEST._serialized_start=86290 + _NEIGHBORSV6STATESREQUEST._serialized_end=86340 + _NEIGHBORSV6STATE._serialized_start=86343 + _NEIGHBORSV6STATE._serialized_end=86507 + _BGPPREFIXSTATEREQUEST._serialized_start=86510 + _BGPPREFIXSTATEREQUEST._serialized_end=86832 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=86756 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=86832 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=86773 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=86832 + _BGPPREFIXIPV4UNICASTFILTER._serialized_start=86835 + _BGPPREFIXIPV4UNICASTFILTER._serialized_end=87108 + _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=17676 + _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=17743 + _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=17686 + _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=17743 + _BGPPREFIXIPV6UNICASTFILTER._serialized_start=87111 + _BGPPREFIXIPV6UNICASTFILTER._serialized_end=87384 + _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=17676 + _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=17743 + _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=17686 + _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=17743 + _BGPPREFIXESSTATE._serialized_start=87387 + _BGPPREFIXESSTATE._serialized_end=87577 + _BGPPREFIXIPV4UNICASTSTATE._serialized_start=87580 + _BGPPREFIXIPV4UNICASTSTATE._serialized_end=88173 + _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=17676 + _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=17743 + _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=17686 + _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=17743 + _BGPPREFIXIPV6UNICASTSTATE._serialized_start=88176 + _BGPPREFIXIPV6UNICASTSTATE._serialized_end=88769 + _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=17676 + _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=17743 + _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=17686 + _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=17743 + _RESULTBGPCOMMUNITY._serialized_start=88772 + _RESULTBGPCOMMUNITY._serialized_end=89076 + _RESULTBGPCOMMUNITY_TYPE._serialized_start=18005 + _RESULTBGPCOMMUNITY_TYPE._serialized_end=18147 + _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18014 + _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18147 + _RESULTBGPASPATH._serialized_start=89078 + _RESULTBGPASPATH._serialized_end=89142 + _RESULTBGPASPATHSEGMENT._serialized_start=89145 + _RESULTBGPASPATHSEGMENT._serialized_end=89351 + _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19108 + _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=19201 + _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19116 + _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19201 + _ISISLSPSSTATEREQUEST._serialized_start=89353 + _ISISLSPSSTATEREQUEST._serialized_end=89402 + _ISISLSPSSTATE._serialized_start=89404 + _ISISLSPSSTATE._serialized_end=89504 + _ISISLSPSTATE._serialized_start=89507 + _ISISLSPSTATE._serialized_end=89929 + _ISISLSPSTATE_PDUTYPE._serialized_start=89775 + _ISISLSPSTATE_PDUTYPE._serialized_end=89835 + _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9182 + _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9231 + _ISISLSPTLVS._serialized_start=89932 + _ISISLSPTLVS._serialized_end=90440 + _ISISLSPHOSTNAME._serialized_start=90442 + _ISISLSPHOSTNAME._serialized_end=90495 + _ISISLSPFLAGS._serialized_start=90498 + _ISISLSPFLAGS._serialized_end=90800 + _ISISLSPISREACHABILITYTLV._serialized_start=90802 + _ISISLSPISREACHABILITYTLV._serialized_end=90869 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=90871 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=90946 + _ISISLSPNEIGHBOR._serialized_start=90948 + _ISISLSPNEIGHBOR._serialized_end=91003 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=91005 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=91081 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=91083 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=91159 + _ISISLSPV4PREFIX._serialized_start=91162 + _ISISLSPV4PREFIX._serialized_end=91633 + _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=12609 + _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=12672 + _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12631 + _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=12672 + _ISISLSPV4PREFIX_ORIGINTYPE._serialized_start=12542 + _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=12607 + _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=12556 + _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=12607 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=91635 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=91719 + _ISISLSPEXTENDEDV4PREFIX._serialized_start=91722 + _ISISLSPEXTENDEDV4PREFIX._serialized_end=92103 + _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=12609 + _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=12672 + _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12631 + _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=12672 + _ISISLSPIPV6REACHABILITYTLV._serialized_start=92105 + _ISISLSPIPV6REACHABILITYTLV._serialized_end=92173 + _ISISLSPV6PREFIX._serialized_start=92176 + _ISISLSPV6PREFIX._serialized_end=92688 + _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=12609 + _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=12672 + _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12631 + _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=12672 + _ISISLSPV6PREFIX_ORIGINTYPE._serialized_start=12542 + _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=12607 + _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=12556 + _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=12607 + _ISISLSPPREFIXATTRIBUTES._serialized_start=92690 + _ISISLSPPREFIXATTRIBUTES._serialized_end=92811 + _LLDPNEIGHBORSSTATEREQUEST._serialized_start=92813 + _LLDPNEIGHBORSSTATEREQUEST._serialized_end=92889 + _LLDPNEIGHBORSSTATE._serialized_start=92892 + _LLDPNEIGHBORSSTATE._serialized_end=94055 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=93471 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=93645 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=93489 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=93645 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=93648 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=93818 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=93663 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=93818 + _LLDPCUSTOMTLVSTATE._serialized_start=94058 + _LLDPCUSTOMTLVSTATE._serialized_end=94188 + _LLDPCAPABILITYSTATE._serialized_start=94191 + _LLDPCAPABILITYSTATE._serialized_end=94591 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=94324 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=94548 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=94343 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=94548 + _RSVPLSPSSTATEREQUEST._serialized_start=94593 + _RSVPLSPSSTATEREQUEST._serialized_end=94642 + _RSVPLSPSSTATE._serialized_start=94644 + _RSVPLSPSSTATE._serialized_end=94753 + _RSVPIPV4LSPSTATE._serialized_start=94756 + _RSVPIPV4LSPSTATE._serialized_end=94982 + _RSVPLSPSTATE._serialized_start=94985 + _RSVPLSPSTATE._serialized_end=95549 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=95279 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=95337 + _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=12631 + _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=12672 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=95339 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=95428 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=95357 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=95428 + _RSVPLSPIPV4RRO._serialized_start=95551 + _RSVPLSPIPV4RRO._serialized_end=95649 + _RSVPLSPIPV4ERO._serialized_start=95652 + _RSVPLSPIPV4ERO._serialized_end=95894 + _RSVPLSPIPV4ERO_TYPE._serialized_start=95759 + _RSVPLSPIPV4ERO_TYPE._serialized_end=95866 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=95767 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=95866 + _CAPTUREREQUEST._serialized_start=95896 + _CAPTUREREQUEST._serialized_end=95950 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=95952 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=96071 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=96073 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=96198 + _PATTERNFLOWETHERNETDST._serialized_start=96201 + _PATTERNFLOWETHERNETDST._serialized_end=96639 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=96513 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=96609 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=96641 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=96760 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=96762 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=96887 + _PATTERNFLOWETHERNETSRC._serialized_start=96890 + _PATTERNFLOWETHERNETSRC._serialized_end=97290 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=97292 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=97417 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=97420 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=97551 + _PATTERNFLOWETHERNETETHERTYPE._serialized_start=97554 + _PATTERNFLOWETHERNETETHERTYPE._serialized_end=98022 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=96513 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=96609 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=98024 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=98148 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=98151 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=98281 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=98284 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=98709 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=98711 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=98831 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=98833 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=98959 + _PATTERNFLOWVLANPRIORITY._serialized_start=98962 + _PATTERNFLOWVLANPRIORITY._serialized_end=99367 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=97183 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=97269 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVLANCFICOUNTER._serialized_start=99369 + _PATTERNFLOWVLANCFICOUNTER._serialized_end=99484 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=99486 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=99607 + _PATTERNFLOWVLANCFI._serialized_start=99610 + _PATTERNFLOWVLANCFI._serialized_end=99990 + _PATTERNFLOWVLANCFI_CHOICE._serialized_start=97183 + _PATTERNFLOWVLANCFI_CHOICE._serialized_end=97269 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVLANIDCOUNTER._serialized_start=99992 + _PATTERNFLOWVLANIDCOUNTER._serialized_end=100106 + _PATTERNFLOWVLANIDMETRICTAG._serialized_start=100108 + _PATTERNFLOWVLANIDMETRICTAG._serialized_end=100228 + _PATTERNFLOWVLANID._serialized_start=100231 + _PATTERNFLOWVLANID._serialized_end=100606 + _PATTERNFLOWVLANID_CHOICE._serialized_start=97183 + _PATTERNFLOWVLANID_CHOICE._serialized_end=97269 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=100608 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=100724 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=100726 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=100848 + _PATTERNFLOWVLANTPID._serialized_start=100851 + _PATTERNFLOWVLANTPID._serialized_end=101236 + _PATTERNFLOWVLANTPID_CHOICE._serialized_start=97183 + _PATTERNFLOWVLANTPID_CHOICE._serialized_end=97269 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=101238 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=101356 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=101358 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=101482 + _PATTERNFLOWVXLANFLAGS._serialized_start=101485 + _PATTERNFLOWVXLANFLAGS._serialized_end=101880 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=97183 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=97269 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=101882 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=102004 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=102007 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=102135 + _PATTERNFLOWVXLANRESERVED0._serialized_start=102138 + _PATTERNFLOWVXLANRESERVED0._serialized_end=102553 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=97183 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=97269 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWVXLANVNICOUNTER._serialized_start=102555 + _PATTERNFLOWVXLANVNICOUNTER._serialized_end=102671 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=102673 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=102795 + _PATTERNFLOWVXLANVNI._serialized_start=102798 + _PATTERNFLOWVXLANVNI._serialized_end=103221 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=96513 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=96609 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=103223 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=103345 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=103348 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=103476 + _PATTERNFLOWVXLANRESERVED1._serialized_start=103479 + _PATTERNFLOWVXLANRESERVED1._serialized_end=103894 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=97183 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=97269 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=103896 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=104015 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=104017 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=104142 + _PATTERNFLOWIPV4VERSION._serialized_start=104145 + _PATTERNFLOWIPV4VERSION._serialized_end=104545 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=104547 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=104671 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=104674 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=104804 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=104807 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=105270 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=96513 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=96609 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=105272 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=105395 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=105398 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=105527 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=105530 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=105988 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=96513 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=96609 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=105990 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=106116 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=106119 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=106251 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=106254 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=106689 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=106691 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=106811 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=106813 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=106939 + _PATTERNFLOWIPV4RESERVED._serialized_start=106942 + _PATTERNFLOWIPV4RESERVED._serialized_end=107347 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=107349 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=107473 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=107476 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=107606 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=107609 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=108034 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=108036 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=108161 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=108164 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=108295 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=108298 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=108728 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=108730 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=108856 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=108859 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=108991 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=108994 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=109429 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=109431 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=109553 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=109556 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=109684 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=109687 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=110102 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=110104 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=110224 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=110226 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=110352 + _PATTERNFLOWIPV4PROTOCOL._serialized_start=110355 + _PATTERNFLOWIPV4PROTOCOL._serialized_end=110798 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=96513 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=96609 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=110801 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=111152 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=111154 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=111269 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=111271 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=111392 + _PATTERNFLOWIPV4SRC._serialized_start=111395 + _PATTERNFLOWIPV4SRC._serialized_end=111775 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=111777 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=111892 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=111894 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=112015 + _PATTERNFLOWIPV4DST._serialized_start=112018 + _PATTERNFLOWIPV4DST._serialized_end=112398 + _PATTERNFLOWIPV4DST_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4DST_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=112400 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=112523 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=112526 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=112655 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=112658 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=113078 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=113080 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=113199 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=113201 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=113326 + _PATTERNFLOWIPV4DSCPPHB._serialized_start=113329 + _PATTERNFLOWIPV4DSCPPHB._serialized_end=113729 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=113731 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=113850 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=113852 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=113977 + _PATTERNFLOWIPV4DSCPECN._serialized_start=113980 + _PATTERNFLOWIPV4DSCPECN._serialized_end=114380 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=114382 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=114507 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=114510 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=114641 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=114644 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=115074 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=115076 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=115196 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=115198 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=115324 + _PATTERNFLOWIPV4TOSDELAY._serialized_start=115327 + _PATTERNFLOWIPV4TOSDELAY._serialized_end=115732 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=115734 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=115859 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=115862 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=115993 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=115996 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=116426 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=116428 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=116554 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=116557 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=116689 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=116692 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=117127 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=117129 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=117252 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=117255 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=117384 + _PATTERNFLOWIPV4TOSMONETARY._serialized_start=117387 + _PATTERNFLOWIPV4TOSMONETARY._serialized_end=117807 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=117809 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=117930 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=117932 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=118059 + _PATTERNFLOWIPV4TOSUNUSED._serialized_start=118062 + _PATTERNFLOWIPV4TOSUNUSED._serialized_end=118472 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=118474 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=118593 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=118595 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=118720 + _PATTERNFLOWIPV6VERSION._serialized_start=118723 + _PATTERNFLOWIPV6VERSION._serialized_end=119123 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=119125 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=119249 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=119252 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=119382 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=119385 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=119810 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=119812 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=119933 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=119935 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=120062 + _PATTERNFLOWIPV6FLOWLABEL._serialized_start=120065 + _PATTERNFLOWIPV6FLOWLABEL._serialized_end=120475 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=120477 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=120602 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=120605 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=120736 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=120739 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=121207 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=96513 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=96609 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=121209 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=121331 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=121334 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=121462 + _PATTERNFLOWIPV6NEXTHEADER._serialized_start=121465 + _PATTERNFLOWIPV6NEXTHEADER._serialized_end=121918 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=96513 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=96609 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=121920 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=122040 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=122042 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=122168 + _PATTERNFLOWIPV6HOPLIMIT._serialized_start=122171 + _PATTERNFLOWIPV6HOPLIMIT._serialized_end=122576 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=122578 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=122693 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=122695 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=122816 + _PATTERNFLOWIPV6SRC._serialized_start=122819 + _PATTERNFLOWIPV6SRC._serialized_end=123199 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=123201 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=123316 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=123318 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=123439 + _PATTERNFLOWIPV6DST._serialized_start=123442 + _PATTERNFLOWIPV6DST._serialized_end=123822 + _PATTERNFLOWIPV6DST_CHOICE._serialized_start=97183 + _PATTERNFLOWIPV6DST_CHOICE._serialized_end=97269 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=123824 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=123943 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=123945 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=124070 + _PATTERNFLOWPFCPAUSEDST._serialized_start=124073 + _PATTERNFLOWPFCPAUSEDST._serialized_end=124473 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=124475 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=124594 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=124596 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=124721 + _PATTERNFLOWPFCPAUSESRC._serialized_start=124724 + _PATTERNFLOWPFCPAUSESRC._serialized_end=125124 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=125126 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=125251 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=125254 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=125385 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=125388 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=125818 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=125821 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=125950 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=125953 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=126088 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=126091 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=126541 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=126544 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=126677 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=126680 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=126819 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=126822 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=127292 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=127294 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=127421 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=127424 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=127557 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=127560 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=128000 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=128002 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=128129 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=128132 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=128265 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=128268 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=128708 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=128710 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=128837 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=128840 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=128973 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=128976 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=129416 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=129418 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=129545 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=129548 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=129681 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=129684 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=130124 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=130126 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=130253 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=130256 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=130389 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=130392 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=130832 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=130834 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=130961 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=130964 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=131097 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=131100 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=131540 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=131542 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=131669 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=131672 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=131805 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=131808 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=132248 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=132250 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=132377 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=132380 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=132513 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=132516 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=132956 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=97183 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=97269 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=132958 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=133082 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=133085 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=133215 + _PATTERNFLOWETHERNETPAUSEDST._serialized_start=133218 + _PATTERNFLOWETHERNETPAUSEDST._serialized_end=133643 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=133645 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=133769 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=133772 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=133902 + _PATTERNFLOWETHERNETPAUSESRC._serialized_start=133905 + _PATTERNFLOWETHERNETPAUSESRC._serialized_end=134330 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=134333 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=134463 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=134466 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=134602 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=134605 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=135060 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=135063 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=135197 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=135200 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=135340 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=135343 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=135818 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=135820 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=135945 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=135948 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=136079 + _PATTERNFLOWETHERNETPAUSETIME._serialized_start=136082 + _PATTERNFLOWETHERNETPAUSETIME._serialized_end=136512 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=97183 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=97269 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=136514 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=136632 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=136634 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=136758 + _PATTERNFLOWTCPSRCPORT._serialized_start=136761 + _PATTERNFLOWTCPSRCPORT._serialized_end=137156 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=137158 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=137276 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=137278 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=137402 + _PATTERNFLOWTCPDSTPORT._serialized_start=137405 + _PATTERNFLOWTCPDSTPORT._serialized_end=137800 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=137802 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=137919 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=137921 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=138044 + _PATTERNFLOWTCPSEQNUM._serialized_start=138047 + _PATTERNFLOWTCPSEQNUM._serialized_end=138437 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=138439 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=138556 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=138558 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=138681 + _PATTERNFLOWTCPACKNUM._serialized_start=138684 + _PATTERNFLOWTCPACKNUM._serialized_end=139074 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=139076 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=139197 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=139199 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=139326 + _PATTERNFLOWTCPDATAOFFSET._serialized_start=139329 + _PATTERNFLOWTCPDATAOFFSET._serialized_end=139739 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=139741 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=139857 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=139859 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=139981 + _PATTERNFLOWTCPECNNS._serialized_start=139984 + _PATTERNFLOWTCPECNNS._serialized_end=140369 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=140371 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=140488 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=140490 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=140613 + _PATTERNFLOWTCPECNCWR._serialized_start=140616 + _PATTERNFLOWTCPECNCWR._serialized_end=141006 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=141008 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=141126 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=141128 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=141252 + _PATTERNFLOWTCPECNECHO._serialized_start=141255 + _PATTERNFLOWTCPECNECHO._serialized_end=141650 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=141652 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=141769 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=141771 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=141894 + _PATTERNFLOWTCPCTLURG._serialized_start=141897 + _PATTERNFLOWTCPCTLURG._serialized_end=142287 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=142289 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=142406 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=142408 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=142531 + _PATTERNFLOWTCPCTLACK._serialized_start=142534 + _PATTERNFLOWTCPCTLACK._serialized_end=142924 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=142926 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=143043 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=143045 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=143168 + _PATTERNFLOWTCPCTLPSH._serialized_start=143171 + _PATTERNFLOWTCPCTLPSH._serialized_end=143561 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=143563 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=143680 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=143682 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=143805 + _PATTERNFLOWTCPCTLRST._serialized_start=143808 + _PATTERNFLOWTCPCTLRST._serialized_end=144198 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=144200 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=144317 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=144319 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=144442 + _PATTERNFLOWTCPCTLSYN._serialized_start=144445 + _PATTERNFLOWTCPCTLSYN._serialized_end=144835 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=144837 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=144954 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=144956 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=145079 + _PATTERNFLOWTCPCTLFIN._serialized_start=145082 + _PATTERNFLOWTCPCTLFIN._serialized_end=145472 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=145474 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=145591 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=145593 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=145716 + _PATTERNFLOWTCPWINDOW._serialized_start=145719 + _PATTERNFLOWTCPWINDOW._serialized_end=146109 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=97183 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=97269 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=146111 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=146229 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=146231 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=146355 + _PATTERNFLOWUDPSRCPORT._serialized_start=146358 + _PATTERNFLOWUDPSRCPORT._serialized_end=146753 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=97183 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=97269 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=146755 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=146873 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=146875 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=146999 + _PATTERNFLOWUDPDSTPORT._serialized_start=147002 + _PATTERNFLOWUDPDSTPORT._serialized_end=147397 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=97183 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=97269 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=147399 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=147516 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=147518 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=147641 + _PATTERNFLOWUDPLENGTH._serialized_start=147644 + _PATTERNFLOWUDPLENGTH._serialized_end=148034 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWUDPCHECKSUM._serialized_start=148037 + _PATTERNFLOWUDPCHECKSUM._serialized_end=148367 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=148369 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=148495 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=148498 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=148630 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=148633 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=149068 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=97183 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=97269 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=149070 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=149190 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=149192 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=149318 + _PATTERNFLOWGRERESERVED0._serialized_start=149321 + _PATTERNFLOWGRERESERVED0._serialized_end=149726 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=97183 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=97269 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=149728 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=149846 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=149848 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=149972 + _PATTERNFLOWGREVERSION._serialized_start=149975 + _PATTERNFLOWGREVERSION._serialized_end=150370 + _PATTERNFLOWGREVERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWGREVERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=150372 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=150491 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=150493 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=150618 + _PATTERNFLOWGREPROTOCOL._serialized_start=150621 + _PATTERNFLOWGREPROTOCOL._serialized_end=151021 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=97183 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=97269 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGRECHECKSUM._serialized_start=151024 + _PATTERNFLOWGRECHECKSUM._serialized_end=151354 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=151356 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=151476 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=151478 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=151604 + _PATTERNFLOWGRERESERVED1._serialized_start=151607 + _PATTERNFLOWGRERESERVED1._serialized_end=152012 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=97183 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=97269 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=152014 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=152134 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=152136 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=152262 + _PATTERNFLOWGTPV1VERSION._serialized_start=152265 + _PATTERNFLOWGTPV1VERSION._serialized_end=152670 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=152672 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=152797 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=152800 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=152931 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=152934 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=153364 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=153366 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=153487 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=153489 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=153616 + _PATTERNFLOWGTPV1RESERVED._serialized_start=153619 + _PATTERNFLOWGTPV1RESERVED._serialized_end=154029 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=154031 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=154149 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=154151 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=154275 + _PATTERNFLOWGTPV1EFLAG._serialized_start=154278 + _PATTERNFLOWGTPV1EFLAG._serialized_end=154673 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=154675 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=154793 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=154795 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=154919 + _PATTERNFLOWGTPV1SFLAG._serialized_start=154922 + _PATTERNFLOWGTPV1SFLAG._serialized_end=155317 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=155319 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=155438 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=155440 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=155565 + _PATTERNFLOWGTPV1PNFLAG._serialized_start=155568 + _PATTERNFLOWGTPV1PNFLAG._serialized_end=155968 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=155970 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=156094 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=156097 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=156227 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=156230 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=156655 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=156657 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=156783 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=156786 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=156918 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=156921 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=157356 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=157358 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=157475 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=157477 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=157600 + _PATTERNFLOWGTPV1TEID._serialized_start=157603 + _PATTERNFLOWGTPV1TEID._serialized_end=157993 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=157995 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=158121 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=158124 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=158256 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=158259 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=158694 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=158696 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=158819 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=158822 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=158951 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=158954 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=159374 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=159377 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=159513 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=159516 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=159658 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=159661 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=160146 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=160149 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=160284 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=160287 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=160428 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=160431 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=160911 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=160914 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=161042 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=161045 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=161179 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=161182 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=161627 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=161630 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=161769 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=161772 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=161917 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=161920 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=162420 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=162422 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=162542 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=162544 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=162670 + _PATTERNFLOWGTPV2VERSION._serialized_start=162673 + _PATTERNFLOWGTPV2VERSION._serialized_end=163078 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=163081 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=163210 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=163213 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=163348 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=163351 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=163801 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=163803 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=163924 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=163926 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=164053 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=164056 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=164466 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=164468 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=164587 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=164589 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=164714 + _PATTERNFLOWGTPV2SPARE1._serialized_start=164717 + _PATTERNFLOWGTPV2SPARE1._serialized_end=165117 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=165119 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=165243 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=165246 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=165376 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=165379 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=165804 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=165806 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=165932 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=165935 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=166067 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=166070 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=166505 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=166507 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=166624 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=166626 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=166749 + _PATTERNFLOWGTPV2TEID._serialized_start=166752 + _PATTERNFLOWGTPV2TEID._serialized_end=167142 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=167144 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=167271 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=167274 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=167407 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=167410 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=167850 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=167852 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=167971 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=167973 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=168098 + _PATTERNFLOWGTPV2SPARE2._serialized_start=168101 + _PATTERNFLOWGTPV2SPARE2._serialized_end=168501 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=97183 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=97269 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=168503 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=168626 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=168629 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=168758 + _PATTERNFLOWARPHARDWARETYPE._serialized_start=168761 + _PATTERNFLOWARPHARDWARETYPE._serialized_end=169181 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=169183 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=169306 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=169309 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=169438 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=169441 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=169861 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=169863 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=169988 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=169991 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=170122 + _PATTERNFLOWARPHARDWARELENGTH._serialized_start=170125 + _PATTERNFLOWARPHARDWARELENGTH._serialized_end=170555 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=170557 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=170682 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=170685 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=170816 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=170819 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=171249 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=97183 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=97269 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=171251 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=171371 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=171373 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=171499 + _PATTERNFLOWARPOPERATION._serialized_start=171502 + _PATTERNFLOWARPOPERATION._serialized_end=171907 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=97183 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=97269 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=171910 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=172039 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=172042 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=172177 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=172180 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=172630 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=97183 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=97269 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=172633 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=172762 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=172765 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=172900 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=172903 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=173353 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=97183 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=97269 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=173356 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=173485 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=173488 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=173623 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=173626 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=174076 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=97183 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=97269 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=174079 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=174208 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=174211 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=174346 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=174349 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=174799 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=97183 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=97269 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=174801 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=174921 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=174923 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=175049 + _PATTERNFLOWICMPECHOTYPE._serialized_start=175052 + _PATTERNFLOWICMPECHOTYPE._serialized_end=175457 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=175459 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=175579 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=175581 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=175707 + _PATTERNFLOWICMPECHOCODE._serialized_start=175710 + _PATTERNFLOWICMPECHOCODE._serialized_end=176115 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=176118 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=176463 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=176465 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=176591 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=176594 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=176726 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=176729 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=177164 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=177167 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=177297 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=177300 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=177436 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=177439 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=177894 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=177897 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=178248 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=178251 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=178383 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=178386 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=178524 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=178527 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=178992 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=178995 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=179131 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=179134 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=179276 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=179279 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=179764 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=179766 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=179888 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=179891 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=180019 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=180022 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=180437 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=180439 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=180561 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=180564 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=180692 + _PATTERNFLOWICMPV6ECHOCODE._serialized_start=180695 + _PATTERNFLOWICMPV6ECHOCODE._serialized_end=181110 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=181113 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=181241 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=181244 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=181378 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=181381 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=181826 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=181829 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=181961 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=181964 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=182102 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=182105 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=182570 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=97183 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=182573 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=182924 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=182927 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=183284 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=183286 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=183404 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=183406 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=183530 + _PATTERNFLOWPPPADDRESS._serialized_start=183533 + _PATTERNFLOWPPPADDRESS._serialized_end=183928 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=97183 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=97269 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=183930 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=184048 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=184050 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=184174 + _PATTERNFLOWPPPCONTROL._serialized_start=184177 + _PATTERNFLOWPPPCONTROL._serialized_end=184572 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=97183 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=97269 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=184574 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=184697 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=184700 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=184829 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=184832 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=185290 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=96513 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=96609 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=185292 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=185413 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=185415 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=185542 + _PATTERNFLOWIGMPV1VERSION._serialized_start=185545 + _PATTERNFLOWIGMPV1VERSION._serialized_end=185955 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=97183 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=97269 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=185957 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=186075 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=186077 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=186201 + _PATTERNFLOWIGMPV1TYPE._serialized_start=186204 + _PATTERNFLOWIGMPV1TYPE._serialized_end=186599 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=97183 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=97269 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=186601 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=186721 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=186723 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=186849 + _PATTERNFLOWIGMPV1UNUSED._serialized_start=186852 + _PATTERNFLOWIGMPV1UNUSED._serialized_end=187257 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=97183 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=97269 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=187260 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=187599 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=110999 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=111059 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=111009 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=111059 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=111061 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=111116 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=111074 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=111116 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=187601 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=187727 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=187730 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=187862 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=187865 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=188300 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=97183 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=97269 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=188302 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=188419 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=188421 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=188544 + _PATTERNFLOWMPLSLABEL._serialized_start=188547 + _PATTERNFLOWMPLSLABEL._serialized_end=188975 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=96513 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=96609 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=188977 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=189101 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=189104 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=189234 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=189237 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=189662 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=97183 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=97269 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=97269 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=189664 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=189789 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=189792 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=189923 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=189926 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=190394 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=96513 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=96609 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=96523 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=96609 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=190396 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=190518 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=190521 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=190649 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=190652 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=191067 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=97183 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=97269 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=97193 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=97269 + _VERSION._serialized_start=191070 + _VERSION._serialized_end=191215 + _SUCCESS._serialized_start=191217 + _SUCCESS._serialized_end=191257 + _FAILURE._serialized_start=191259 + _FAILURE._serialized_end=191295 + _SETCONFIGREQUEST._serialized_start=191297 + _SETCONFIGREQUEST._serialized_end=191344 + _UPDATECONFIGREQUEST._serialized_start=191346 + _UPDATECONFIGREQUEST._serialized_end=191409 + _SETCONFIGRESPONSE._serialized_start=191411 + _SETCONFIGRESPONSE._serialized_end=191461 + _GETCONFIGRESPONSE._serialized_start=191463 + _GETCONFIGRESPONSE._serialized_end=191511 + _UPDATECONFIGRESPONSE._serialized_start=191513 + _UPDATECONFIGRESPONSE._serialized_end=191566 + _SETCONTROLSTATEREQUEST._serialized_start=191568 + _SETCONTROLSTATEREQUEST._serialized_end=191634 + _SETCONTROLSTATERESPONSE._serialized_start=191636 + _SETCONTROLSTATERESPONSE._serialized_end=191692 + _SETCONTROLACTIONREQUEST._serialized_start=191694 + _SETCONTROLACTIONREQUEST._serialized_end=191763 + _SETCONTROLACTIONRESPONSE._serialized_start=191765 + _SETCONTROLACTIONRESPONSE._serialized_end=191852 + _GETMETRICSREQUEST._serialized_start=191854 + _GETMETRICSREQUEST._serialized_end=191919 + _GETMETRICSRESPONSE._serialized_start=191921 + _GETMETRICSRESPONSE._serialized_end=191989 + _GETSTATESREQUEST._serialized_start=191991 + _GETSTATESREQUEST._serialized_end=192053 + _GETSTATESRESPONSE._serialized_start=192055 + _GETSTATESRESPONSE._serialized_end=192120 + _GETCAPTUREREQUEST._serialized_start=192122 + _GETCAPTUREREQUEST._serialized_end=192187 + _GETCAPTURERESPONSE._serialized_start=192189 + _GETCAPTURERESPONSE._serialized_end=192233 + _GETVERSIONRESPONSE._serialized_start=192235 + _GETVERSIONRESPONSE._serialized_end=192286 + _OPENAPI._serialized_start=192289 + _OPENAPI._serialized_end=192896 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index 0d9bc38b..041a9c1c 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.12.5 +# Open Traffic Generator API 0.13.0 # License: MIT import importlib @@ -111234,8 +111234,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.12.5" - self._version_meta.sdk_version = "0.12.6" + self._version_meta.api_spec_version = "0.13.0" + self._version_meta.sdk_version = "0.13.0" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False diff --git a/version.py b/version.py index 06d653b4..e3c5ea1c 100644 --- a/version.py +++ b/version.py @@ -2,8 +2,8 @@ class Version: - models_version = "0.12.5" - version = "0.12.6" + models_version = "0.13.0" + version = "0.13.0" package_name = "snappi" protobuf_name = "otg" go_package_name = "gosnappi" From adde0e2a82c726701c82bc9aae42edc711b8cf4b Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Fri, 13 Oct 2023 09:44:27 +0000 Subject: [PATCH 10/10] Update auto generated go snappi --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index dbbac7aa..ccfd01bc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -protobuf~=4.23.3 ; python_version > '3.6' -protobuf~=3.15.0 ; python_version <= '3.6' -grpcio-tools~=1.54.2 ; python_version > '3.6' -grpcio~=1.54.2 ; python_version > '3.6' +requests grpcio~=1.35.0 ; python_version <= '3.6' +grpcio-tools~=1.54.2 ; python_version > '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' +grpcio~=1.54.2 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' +protobuf~=4.23.3 ; python_version > '3.6' PyYAML -requests -urllib3 semantic_version +urllib3